我正在探索如何从JAR文件提供JSP。我使用的是SpringBoot 1.5.10.RELEASE
我提到this& this示例,并能够创建春季启动应用程序
奇怪的是,当我将项目作为springboot应用程序或Java App运行时,我能够点击控制器并获得所需的JSP文件作为响应。之后,我想到打包应用程序,然后从JAR运行它。
$ mvn package
$ java -jar target/springboot-web-jar-demo-0.0.1-SNAPSHOT.jar
Spring启动应用程序出现,当我点击相同的URL模式时,控件来自映射方法,但之后...
Whitelabel错误页面
此应用程序没有/ error的显式映射,因此您将此视为后备。
Wed Feb 28 21:01:09 IST 2018年 出现意外错误(type = Not Found,status = 404) /WEB-INF/jsp/index.jsp
我的问题/问题......
我试过寻找合适的解决方案或回答我的问题,但没有得到任何解决方案。因此,请在此处发布问题。
<scope>
的jasper&amp; JSTL到provided
和compile
但没有运气<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.atuldwivedi.learn.springboot</groupId>
<artifactId>springboot-web-jar-demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>springboot-web-jar-demo</name>
<description>Learn how to serve JSP from JAR</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.10.RELEASE</version>
<relativePath />
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
答案 0 :(得分:0)
对于你的春季启动识别他们的jsps,你债务在src.main中创建一个webapp目录,如下所示:
<强>的src /主/ web应用/ WEB-INF / JSP 强>
而不喜欢:
<强>的src /主/资源/ META-INF /资源/ WEB-INF / JSP 强>
答案 1 :(得分:0)
让dispatcherServelet识别他们的jsps,你在src.main中创建一个webapp目录,如下所示:
的src /主/ web应用/ WEB-INF / JSP 并在application.properties中自动配置您的应用程序 spring.mvc.view.prefix:/ WEB-INF / JSP spring.mvc.view.suffix:.jsp`
答案 2 :(得分:-1)
使用可执行jar时不支持JSP。