Tomcat 8.0.30更新更改重定向行为

时间:2015-12-14 15:19:08

标签: spring-mvc tomcat8

我将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中的错误吗?

1 个答案:

答案 0 :(得分:1)

此错误似乎相关,并提供了一种可能的解决方法:

https://bz.apache.org/bugzilla/show_bug.cgi?id=58660