最近毕设期间,因为主要做后端,所有前台页面仍然使用的jsp。后端用springboor搭建架构,最后把项目打包成jar,就懒得把项目打包成war然后又放到tomcat下面了。 看了好多老哥配置啥的,不管怎么都报404,也就是找不到我的jsp页面。研究了一晚上,总算解决问题。
首先项目打包成jar的话,是没有webapp目录的,我们需要将页面拷贝到META-INF/resources 目录下。算了 不扯太多,直接分享实现步骤。
首先,指定打包方式。其次,注意springboot版本,再者,导入jsp依赖包,不需要指定版本。
<packaging>jar</packaging> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.6.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </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> <!--springboot 启动--> <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> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> </dependency> <!--jsp--> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> </dependency>需要注意1.spring-boot-maven-plugin 一定要引入,我之前就是因为没有添加maven,导致404报错。
2. springloaded 热部署也最好加上
3. 注意最下面部分,指定打包后jsp页面的报错位置。
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>1.4.2.RELEASE</version> <configuration> <mainClass>com.tx.bs.BsApplication</mainClass> </configuration> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> <dependencies> <!-- spring热部署 --> <dependency> <groupId>org.springframework</groupId> <artifactId>springloaded</artifactId> <version>1.2.6.RELEASE</version> </dependency> </dependencies> </plugin> <!-- 忽略无web.xml警告 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <configuration> <failOnMissingWebXml>false</failOnMissingWebXml> </configuration> </plugin> </plugins> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/**</include> </includes> </resource> <resource> <directory>src/main/resources</directory> <includes> <include>**/**</include> </includes> <filtering>false</filtering> </resource> <resource> <directory>src/main/webapp</directory> <includes> <include>**/**</include> </includes> <targetPath>META-INF/resources</targetPath> <filtering>false</filtering> </resource> </resources> </build>直接java -jar xxxx.jar 运行即可。完成收工。