Java 无法在Spring Boot 1.5.20.0版本上重定向ErrorViewResolver内部的视图
我正在试验ErrorViewResolver,尝试从ModelAndView重定向视图,但它始终显示404HTTP状态错误。我使用的Spring引导版本是1.5.20.0版本。当我将版本降级到1.5.1x.RELEASE或升级到2.x时,它被成功重定向 下面是示例代码:Java 无法在Spring Boot 1.5.20.0版本上重定向ErrorViewResolver内部的视图,java,spring-boot,Java,Spring Boot,我正在试验ErrorViewResolver,尝试从ModelAndView重定向视图,但它始终显示404HTTP状态错误。我使用的Spring引导版本是1.5.20.0版本。当我将版本降级到1.5.1x.RELEASE或升级到2.x时,它被成功重定向 下面是示例代码: @组件 公共类MyErrorResolveView实现ErrorViewResolver{ @凌驾 公共模型和视图resolveErrorView(HttpServletRequest请求、HttpStatus状态、映射模型){
@组件
公共类MyErrorResolveView实现ErrorViewResolver{
@凌驾
公共模型和视图resolveErrorView(HttpServletRequest请求、HttpStatus状态、映射模型){
//返回新的ModelAndView(“test”);//这项工作很好
返回新的ModelAndView(“重定向:/page”);
}
}
应用程序属性
spring.mvc.view.prefix=/WEB-INF/pages/
spring.mvc.view.suffix=.jsp
server.error.whitelabel.enabled=false
控制器
@GetMapping(值={”/page})
公共模型和视图页(){
返回新的ModelAndView(“测试”);
}
春季安全:
@覆盖
受保护的无效配置(HttpSecurity http)引发异常{
http.cors().disable().csrf().disable().authorizeRequests().anyRequest().permitAll();
}
JSP位置:src/main/webapp/WEB-INF/pages/test.JSP
使用bootRun运行,尝试访问,期望看到“测试”页面,但实际看到HTTP错误404页面
- 弹簧护套1.5.20.1释放
- java 1.8
- 梯度5.2.1
我不确定我是否遗漏了任何配置,或者这是Spring Boot 1.5.20的错误/功能。发布版?
Spring Boot 1.5.20。发布版取决于tomcat embed core 8.5.39
,tomcat版本有一些突破性的变化。尝试使用旧的tomcat嵌入核心版本。您是否为jsp添加了jasper依赖项?。page()
的控制器类是否还有其他映射?是的,我在Gradle依赖项中添加了jasper,在整个站点中只添加了一个控制器和一个请求映射。如前所述,我将Spring Boot降级为1.5.19.RELEASE,将Spring Boot starter tomcat降级为1.5.19.RELEASE,这解决了问题。但是,如果我只将starter tomcat更改为1.5.19.RELEASE,它依赖于tomcat embed core 8.5.37,那么问题仍然存在。我确信这个问题是由tomcat embed core 8.5.39
引起的。使用gradledependencies
检查您使用的是哪个版本的tomcat嵌入核心。只有tomcatembeddedcore8.5.39
能够进行分解,而8.5.38或8.5.40能够正常工作。我发现8.5.39也造成了类似的灾难。