Springboot Jsp 不适用于 2.0.2.RELEASE 版本

Yas*_*rma 2 java spring jsp jar spring-boot

我有一个 springboot 应用程序,当我在 intellij 中运行时它不能与 JSP 一起工作,但是当制作 JAR 时它不起作用。它给出了这个错误。

白标错误页面 此应用程序没有明确的 /error 映射,因此您将其视为后备。

Mon May 21 00:23:11 IST 2018 出现意外错误(类型=未找到,状态=404)。没有可用的消息

JSP 文件存在于 src/main/resources/META-INF/resources/WEB-INF/jsp 中。

和 application.properties 文件包含。

spring.view.prefix: /WEB-INF/jsp/

spring.view.suffix: .jsp
Run Code Online (Sandbox Code Playgroud)

小智 5

它与 maven 如何进行 JAR 打包有关。

“对于Tomcat,如果您使用war 打包,它应该可以工作,即可执行war 可以工作(...)。由于Tomcat 中的硬编码文件模式,可执行jar 将无法工作。”

您可以自行检查 - 打开生成的 JAR 文件,在根 WEB-INF 目录中将丢失。这就是为什么在 IDE 中可以正常工作而在 JAR 中不能正常工作的原因和区别。

请阅读:https : //docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-jsp-limitations

解决方案:使 WAR 而不是 JAR :-)

更改 POM 中的包装。

<packaging>war</packaging>
Run Code Online (Sandbox Code Playgroud)

照常下一个构建项目:

mvn clean install
Run Code Online (Sandbox Code Playgroud)

运行:

java -jar target/app.war
Run Code Online (Sandbox Code Playgroud)