我将Tomcat 8从8.0.26更新到8.0.30。
在我们的项目中,我们使用org.springframework:spring-webmvc:4.2.3.RELEASE。
对于版本8.0.26,当我们打开上下文根时,Tomcat会发送自动重定向302:http://localhost:8080/vrk> http://localhost:8080/vrk/
从版本8.0.30开始,重定向不再发送,这会导致相对URL出现问题。
Java配置没有改变(我们不在该项目中使用XML)。
public final class WebAppInitializer implements WebApplicationInitializer {
@Override
public void onStartup(final ServletContext servletContext) {
try (
final AnnotationConfigWebApplicationContext rootContext = new AnnotationConfigWebApplicationContext()) {
rootContext.register(AppConfig.class);
servletContext.addListener(new ContextLoaderListener(rootContext));
}
try (
final AnnotationConfigWebApplicationContext dispatcherContext = new AnnotationConfigWebApplicationContext()) {
dispatcherContext.register(WebConfig.class);
// dispatcherContext.setServletContext(servletContext); I don't know the reason for this line
final Dynamic dynamic = servletContext.addServlet("dispatcher",
new DispatcherServlet(dispatcherContext));
dynamic.setLoadOnStartup(1);
dynamic.addMapping("/");
dynamic.setMultipartConfig(
new MultipartConfigElement("/tmp", 1024 * 1024 * 5, 1024 * 1024 * 6, 1024 * 1024));
}
}
}
我们如何恢复重定向行为?
这是Tomcat 8.0.30中的错误吗?