springboot中unexpected error (type=Not Found, status=404)/WEB-INF/upload.jsp和No message available解决方案

134 篇文章 1 订阅
20 篇文章 0 订阅

玩springboot这一路上可谓是路途艰辛,这两天就遇到了一个找不到页面的问题,可以说是花费了我很大的力气才给找到,但是又痛恨自己大意。下边就给大家分享一个错误问题的解决方案,其实这个问题包含两个子问题,先看下边两个页面:

相信你对上边两个问题经常看到吧,但是,上边这是两个完全不同的问题导致的。

先说第一个图这个找不到页面的问题,这个问题可能有多重原因 导致的:

  1. Application启动类的位置不对.要将Application类放在最外侧,即包含所有子包 
    原因:spring-boot会自动加载启动类所在包下及其子包下的所有组件.
  2. 在springboot的配置文件:application.yml或application.properties中关于视图解析器的配置问题: 
    当pom文件下的spring-boot-starter-paren版本高时使用: 
    spring.mvc.view.prefix/spring.mvc.view.suffix 
    当pom文件下的spring-boot-starter-paren版本低时使用: 
    spring.view.prefix/spring.view.suffix这个东西我感觉不是主要的原因,但是我又没有遇到过解决该问题使用该方法的场景。
  3. 控制器的URL路径书写问题 
    @RequestMapping(“xxxxxxxxxxxxxx”) 
    实际访问的路径与”xxx”不符合.这个就更少出现了。除非你真是小马虎。

就是你把WEB-INF直接放在main目录下了,没有建立webapp目录,(这就是我犯的错误)

第二个图片的错误其实很简单:

需要在pom文件中加入:

<dependency>
			<groupId>org.apache.tomcat.embed</groupId>
			<artifactId>tomcat-embed-jasper</artifactId>
			<scope>provided</scope>
		</dependency>

究其原因:

 使用过Springboot的同学都知道其已内置tomcat(spring-boot-starter-web),无需打war包,打成jar包直接运行。最近学习使用Springboot发现项目中的pom文件引入了tomcat-embed-jasper(对jsp的支持的依赖)但scope为provided。

        于是不明白感觉springboot的tomcat应该自带了tomcat-embed-jasper吧,遂将pom文件该依赖删掉,eclipse启动项目无报错,访问页面发现所有的jsp页面都会被下载而不能被访问。但是又一个令我疑惑的问题是其依赖scope为provided,也就是说打包时该依赖不会被包含在lib包内,但是我的jar启动的页面访问却没有问题。

        以上说明一个问题:springboot自带的tomcat并没有携带tomcat-embed-jasper的依赖

        又做了一个实验:将tomcat-embed-jasper的scope去掉后,打成jar包,启动项目时报错==>jasper的jar包冲突

        结论猜测:检查pom文件后,猜测一定是spring-boot-maven-plugin(1.4.2.RELEASE)插件在打包时自动额外的添加tomcat-embed-jasper的支持。而我们在工具中启动项目时并没有打包,所以需要该依赖对我们eclipse中项目jsp的支持,为防止其打包冲突,遂设置其scopeprovided。

最后分享一下关于application.properties和application.yml文件的内容写法:

#applicatioin.properties内容如下

spring.mvc.view.prefix=/WEB-INF/views/jsp/
spring.mvc.view.suffix=.jsp
server.port=9990


#application.yml文件内容如下:
spring:
 mvc:
  view:
   prefix : /WEB-INF/jsp/
   suffix : .jsp
server:
    port: 9990


##上边是两个文件,二选一即可,目录都放在src/main/resources下一定要注意文件名

相信上边的两点肯定对你有帮助,也希望你看到之后能给个赞鼓励一下,不嫌弃的话加一下关注哦,后期分享更多springboot相关问题总结。

评论 34
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

uniquewdl

匆忙的人生,总有你喜欢的文章

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值