今天在做一个功能时,需要重新搭建环境,从开始的spring mvc改为使用spring boot搭建,基本配置都搭建好了,
直接用main方法启动,然后报错了~
但是就是controller返回时候,总是只返回jsp源码。
网上方法基本都是说我web.xml配置不正确,但是我没有web.xml啊~~
而后,在WebMvcConfig
配置文件下也排查了好久,以为是viewResolver
的问题,最终发现并不是。
找了好一会,只能去墙外了。。。
问了谷老师,在statckoverflow上找到了解决方法:
需要在pom中增加:
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
这样,spring内置的tomcat才能正常解析jsp。
但是在加入这一段时候,注意要把原有的这两个依赖给删除:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
否则会提示错误,重复启动子容器:
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167) ~[tomcat-embed-core-8.5.23.jar:8.5.23]
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:422) ~[tomcat-embed-core-8.5.23.jar:8.5.23]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) ~[tomcat-embed-core-8.5.23.jar:8.5.23]
... 22 common frames omitted
Caused by: org.apache.catalina.LifecycleException: A child container failed during start
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:948) ~[tomcat-embed-core-8.5.23.jar:8.5.23]
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262) ~[tomcat-embed-core-8.5.23.jar:8.5.23]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) ~[tomcat-embed-core-8.5.23.jar:8.5.23]
... 24 common frames omitted
参考的Stack Overflow:
https://stackoverflow.com/questions/20602010/jsp-file-not-rendering-in-spring-boot-web-application
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/37956.html