Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法在Spring Boot 1.5.20.0版本上重定向ErrorViewResolver内部的视图_Java_Spring Boot - Fatal编程技术网

Java 无法在Spring Boot 1.5.20.0版本上重定向ErrorViewResolver内部的视图

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状态、映射模型){

我正在试验ErrorViewResolver,尝试从ModelAndView重定向视图,但它始终显示404HTTP状态错误。我使用的Spring引导版本是1.5.20.0版本。当我将版本降级到1.5.1x.RELEASE或升级到2.x时,它被成功重定向

下面是示例代码:

@组件
公共类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也造成了类似的灾难。