我是Spring boot的新手,我认为这个问题非常基础。
我使用Spring Boot创建了一个应用程序,在开发环境中一切正常。但是,当我将jar文件从目标目录复制到另一台机器并运行"java -jar“时,它不会呈现jsp页面,错误如下:
There was an unexpected error (type=Not Found, status=404)当我将src文件夹从项目根目录复制到相同的位置时,它工作正常。
jar文件似乎只是从项目的根开始工作。
以下是我的配置:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- Spring Boot Section -->
<!-- Web -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</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>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
<resource>
<directory>src/main/webapp</directory>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>和我的项目结构:

我在命令行中运行以下命令:
mvn clean package我的目标目录中有以下内容:

我可以使用以下命令运行应用程序
java -jar target/springboot-in-10-steps-0.0.1.jar 应用程序按预期工作,并呈现欢迎页面。
当我转到目标目录并运行相同的命令时:
java -jar springboot-in-10-steps-0.0.1.jar 应用程序启动,但它不会呈现欢迎页面。
当我将src复制到目标时,一切都很好,并且我可以看到欢迎页面。Spring boot似乎没有在jar文件中找到WEB-INF/jsp目录。
我是不是在spring boot configuration或application.properties中遗漏了什么?
发布于 2017-11-22 06:47:46
我可以通过将打包从jar更改为war来修复它,有趣的是,这是有效的:
java -jar springboot-in-10-steps-0.0.1.war 我认为有一些方法可以使用重新打包特性来更改生成的jar文件中的文件和文件夹的结构。
https://stackoverflow.com/questions/47403743
复制相似问题