【发布时间】:2016-09-05 09:05:00
【问题描述】:
我在 Spring 上有一个应用程序并使用 Java Configs 来配置和初始化我的应用程序,因此我没有 web.xml。这是我的网络初始化器的样子,
public class WebInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
super.onStartup(servletContext);
}
@Override
protected Class<?>[] getRootConfigClasses() {
return new Class<?>[]{PublicApiConfig.class, MobileConfig.class};
}
@Override
protected String[] getServletMappings() {
return new String[]{"/*"};
}
@Override
protected Filter[] getServletFilters() {
CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter();
characterEncodingFilter.setEncoding("UTF-8");
LoggingFilter loggingFilter = new LoggingFilter();
return new Filter[]{characterEncodingFilter, loggingFilter};
}
@Override
protected Class<?>[] getServletConfigClasses() {
return new Class<?>[0];
}
}
我需要实现 tomcat 会话复制,为了达到目的,我需要将应用程序设置为 distributable。使用传统的 web.xml,我可以添加 <distributable/> 属性,仅此而已。然而据我所知,没有办法通过 Java Configs 做到这一点。
我的问题是是否可以混合使用 web.xml 和 java 配置,例如拥有
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<distributable/>
</web-app>
并将其包含在WebInitializer 中。
【问题讨论】:
-
是的,您可以混合使用它们,但我不明白的是,即使存在此 web.xml,您也会收到 web.xml 不存在的错误?
标签: java spring session tomcat