I'm currently trying to move my project from Java EE to Spring Boot project. However, I've been stuck and confused to replacing the web.xml in java config.
I tried to replaced it, but it is not working. The project web.xml
file contains some filters
and servlet
. The details of web.xml file are as below :
<servlet>
<servlet-name>robinTest</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>robinTest</servlet-name>
<url-pattern>/secureServices/ </url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>robinTest</servlet-name>
<url-pattern>/simple/ </url-pattern>
</servlet-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:applicationContext.xml
classpath:application-context-1.xml
classpath:application-context-2.xml
</param-value>
</context-param>
<filter>
<filter-name>robinTestFilter</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
<init-param>
<param-name>targetBeanName</param-name>
<param-value>robinTestFilter</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>robinTestFilter</filter-name>
<url-pattern>/</url-pattern>
</filter-mapping>
<filter>
<filter-name>OpenSession Filter</filter-name>
<filter-class>org.springframework.orm.hibernate5.support.OpenSessionInViewFilter</filter-class>
<init-param>
<param-name>singleSession</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>sessionFactoryBeanName</param-name>
<param-value>sessionFactory</param-value>
</init-param>
<init-param>
<param-name>flushMode</param-name>
<param-value>COMMIT</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>OpenSession Filter</filter-name>
<url-pattern>/</url-pattern>
</filter-mapping>
I already replace the applicationContext.xml
, application-context-1.xml
and application-context-2.xml
files in JavaConfig file but i am not sure, how would i replace the servlet
, listener
and filter
in java config files.
I tried to replace it but it is not working. The sample code are below :
import java.util.HashMap;
import java.util.Map;
import javax.servlet.FilterRegistration;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRegistration;
import org.springframework.context.annotation.Configuration;
import org.springframework.orm.hibernate5.support.OpenSessionInViewFilter;
import org.springframework.web.WebApplicationInitializer;
import org.springframework.web.context.ContextLoaderListener;
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
import org.springframework.web.filter.DelegatingFilterProxy;
import org.springframework.web.servlet.DispatcherServlet;
@Configuration
public class AppInitializer implements WebApplicationInitializer {
@Override
public void onStartup(ServletContext container) throws ServletException {
AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext();
context.scan("org.robin.test");
// container.se
container.addListener(new ContextLoaderListener(context));
ServletRegistration.Dynamic dispatcher = container.addServlet("robinTest", new DispatcherServlet(context));
dispatcher.setLoadOnStartup(2);
dispatcher.addMapping("/simple/");
dispatcher.addMapping("/secureServices/");
FilterRegistration.Dynamic filter = container.addFilter("robinTestFilter", DelegatingFilterProxy.class);
filter.setInitParameter("targetBeanName", "robinTestFilter");
filter.addMappingForUrlPatterns(null, true, "/*");
FilterRegistration.Dynamic filterSession = container.addFilter("OpenSession Filter", OpenSessionInViewFilter.class);
Map<String, String> filterMap=new HashMap<>();
filterMap.put("singleSession", "true");
filterMap.put("sessionFactoryBeanName", "sessionFactory");
filterMap.put("flushMode", "COMMIT");
filterSession.setInitParameters(filterMap);
filterSession.addMappingForUrlPatterns(null, true, "/*");
}
}
Help me out to rid off this problem so that i can focus on other works.
Thanks in advance.