一尘不染

Spring Boot是否可以通过独立的JAR包装提供JSP服务

spring-boot

我尝试用JSP构建Spring Boot到jar包装。我构建了项目,当我使用此命令运行它时,它运行良好

$ mvn软件包

$ java -jar target / mymodule-0.0.1-SNAPSHOT.jar

但是当我转到目标目录($ cd目标)并尝试

$ java -jar mymodule-0.0.1-SNAPSHOT.jar

应用程序运行正常,但是当我打开浏览器并尝试打开页面时,出现错误“出现意外错误(类型=未找到,状态= 404)。/WEB-INF / jsp /index.jsp”

我的问题是为什么当我尝试时它会起作用

$ java -jar target / mymodule-0.0.1-SNAPSHOT.jar

当我尝试时不起作用

$ cd目标

$ java -jar mymodule-0.0.1-SNAPSHOT.jar

我该如何解决?

编辑

jar或目标目录中没有WEB-INF目录,当我将其放在那里时无济于事


阅读 247

收藏
2020-05-30

共1个答案

一尘不染

如果您使用的是嵌入式Tomcat,则Spring Boot 不支持在可执行jar中使用JSP

对于Tomcat,如果使用war打包,它应该可以工作,即可执行的war将可以工作,并且还可以部署到标准容器(不限于,但包括Tomcat)。由于Tomcat中采用了硬编码的文件模式,因此可执行的jar将无法工作。

尝试时可以使用,java -jar target/mymodule-0.0.1-SNAPSHOT.jar因为JSP在文件系统上可用src/main/webapp,Spring Boot
从文件系统中将JSP 配置为文档根目录,以便在开发过程中使用。当您移至目标目录时,该src/main/webapp文件夹不再可用,因此JSP停止工作。

2020-05-30