Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Spring JavaConfig: Add mapping for custom Servlet

In a javaconfig-based Spring 4.0 project, how can I add a mapping for a certain URL to a Servlet other than the Spring DispatcherServlet.

Im my case I want to use h2console from H2 database which is provided through the servlet org.h2.server.web.WebServlet

Edit: In the upcoming Spring Boot 1.3 the h2console can be enabled with a configuration parameter: http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#boot-features-sql-h2-console

Enabling it is as simple as adding these two lines to your application.properties:

spring.h2.console.enabled=true
spring.h2.console.path=/console
like image 675
yglodt Avatar asked Jan 20 '14 21:01

yglodt


1 Answers

The easiest way is to use initializer implementing directly WebApplicationInitializer and the add into onStartup(ServletContext servletContext) method following code;

ServletRegistration.Dynamic h2Servlet = servletContext.addServlet("h2Servlet", new org.h2.server.web.WebServlet());
h2Servlet.setLoadOnStartup(1);
h2Servlet.addMapping("/h2/*");
like image 173
Jakub Kubrynski Avatar answered Nov 01 '22 07:11

Jakub Kubrynski