我尝试使用JSP构建Spring Boot以进行jar包装。我构建项目,当我使用此命令运行它时,它工作正常
$ mvn package
$ java -jar target / mymodule-0.0.1-SNAPSHOT.jar
但是当我转到目标目录($ cd target)并尝试
时$ java -jar mymodule-0.0.1-SNAPSHOT.jar
应用程序运行正常但是当我打开浏览器并尝试打开页面时出现错误"出现意外错误(type = Not Found,status = 404)。 /WEB-INF/jsp/index.jsp"
我发现了这个问题,但是当我尝试它时,我遇到了同样的问题 Is it possible with Spring Boot to serve up JSPs with a JAR packaging
我的问题是我尝试
时为什么会有效$ java -jar target / mymodule-0.0.1-SNAPSHOT.jar
并且在我尝试
时不起作用$ cd target
$ java -jar mymodule-0.0.1-SNAPSHOT.jar
我该如何解决?
修改
jar或目标目录中没有WEB-INF目录,当我把它放在那里时它没有帮助
答案 0 :(得分:4)
如果您使用的是嵌入式Tomcat,Spring Boot doesn't support using JSPs in an executable jar:
使用Tomcat它应该可以使用war包装,即可执行的war会起作用,并且也可以部署到标准容器(不限于但包括Tomcat)。由于Tomcat中的硬编码文件模式,可执行jar将无法工作。
当您尝试java -jar target/mymodule-0.0.1-SNAPSHOT.jar
时,它会起作用,因为JSP在src/main/webapp
的文件系统上可用,Spring Boot在开发过程中将其配置为文档根。当您移动到目标目录时,src/main/webapp
文件夹不再可用,因此JSP停止工作。