Spring Boot奇葩问题总结(一)
这几天接手了一个springboot开发的项目,打包的时候遇到了个问题,项目在IDE中运行是一点错都没有的,打成jar包后访问就找不到jsp了
先是查了查Whitelabel Error Page,发现添加上tomcat-embed-jasper有些变化
<dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> </dependency>
然后我就发现我的webapp下的文件都没打进jar包里,接着查怎么把webapp下的文件打进jar包,需要在pom里的build下添加下面这个
<resources> <resource> <directory>src/main/webapp</directory> <targetPath>META-INF/resources</targetPath> <includes> <include>**/**</include> </includes> </resource> <resource> <directory>src/main/resources</directory> <includes> <include>**/**</include> </includes> <filtering>false</filtering> </resource> </resources>
这样确实打包进去了,但是还是找不到jsp,然后在网上看到有人说springboot插件spring-boot-maven-plugin要用1.4.X才能正常访问,1.4之后的都不行,我试验了下确实是这个问题,在网上也没查到原因,后来看到有人说“其实打成war的形式也一样可以通过 java -jar xxx.war跑起来”,试了下确实也行。现在就有两种方式可以正常打包了,一种是,使用spring-boot-maven-plugin-1.4.x.RELEASE的插件打成jar包,运行java -jar xxx.jar,另一种就是直接打成war包,运行java -jar xxx.war。
虽然还是没有找到为什么后面的版本打的jar包不能访问jsp,但是也算找到解决的办法了,花了我一天的时间,在这里做个记录。