【问题标题】:Is it possible with Spring Boot to serve up JSPs with a stand alone JAR packagingSpring Boot 是否可以通过独立的 JAR 包装来提供 JSP
【发布时间】:2016-05-13 09:54:37
【问题描述】:

我尝试用 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"

我发现了这个问题,但是当我尝试时遇到了同样的问题 Is it possible with Spring Boot to serve up JSPs with a JAR packaging

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

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

当我尝试时不起作用

$cd 目标

$java -jar mymodule-0.0.1-SNAPSHOT.jar

我该如何解决?

编辑

jar 或目标目录中没有 WEB-INF 目录,当我把它放在那里时它没有帮助

【问题讨论】:

  • 你不能...见the reference guide“由于 Tomcat 中的硬编码文件模式,可执行 jar 将无法工作。” 来自同一参考指南。你必须使用 war 包装让它可靠地工作
  • 在它有帮助之前我没有注意到它,但我仍然有一个问题,为什么当我运行“$ java -jar target/mymodule-0.0.1-SNAPSHOT.jar”并执行时它会起作用当我从目标运行“$java -jar mymodule-0.0.1-SNAPSHOT.jar”时,t 工作正常吗?

标签: maven jsp spring-boot


【解决方案1】:

如果你使用的是嵌入式 Tomcat,Spring Boot doesn't support using JSPs in an executable jar:

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

当您尝试 java -jar target/mymodule-0.0.1-SNAPSHOT.jar 时它会起作用,因为 JSP 在来自 src/main/webapp 的文件系统上可用,Spring Boot 将其配置为文档根目录,以便在开发期间使用。当您移动到目标目录时,src/main/webapp 文件夹不再可用,因此 JSP 停止工作。

【讨论】:

    猜你喜欢
    • 2014-02-10
    • 2015-03-21
    • 2016-10-26
    • 1970-01-01
    • 2018-04-01
    • 2017-09-15
    • 2018-04-14
    • 2016-11-04
    • 1970-01-01
    相关资源
    最近更新 更多