Spring Boot是否可以使用独立的JAR包装来提供JSP

时间:2016-05-13 09:54:38

标签: maven jsp spring-boot

我尝试使用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目录,当我把它放在那里时它没有帮助

1 个答案:

答案 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停止工作。