创建SpringBoot的web项目,打jar包,在本地和linux服务器上部署,完美解决404等问题

 

导读
【第一步】创建项目,在本地运行
【第二步】创建web项目需要注意的几点
一、创建项目后,必须建立webapp文件夹
一、maven打jar包命令
二、修改pom.xml文件
1、packaging改为jar
2、添加jar包依赖
3、使用maven的resources插件【打jar包极重要】
二、页面不要放在WEB-INF下面
三、修改application配置文件
总结
导读
创建springboot的web项目,并在本地测试运行成功,转发别人详细的教程;
我这里主要解决,为什么使用java -jar部署至linux服务器上,运行总是报错404,找不到页面

【第一步】创建项目,在本地运行
点击进入创建详细流程:https://www.cnblogs.com/sxdcgaq8080/p/7712874.html

【第二步】创建web项目需要注意的几点
一、创建项目后,必须建立webapp文件夹
我们按照上面链接,创建完web项目以后,发现没有webapp文件夹,这个需要手动创建。

附一张项目构架图:


一、maven打jar包命令
mvn clean install -Dmaven.test.skip=true


二、修改pom.xml文件
1、packaging改为jar
<groupId>com.wangys</groupId>
<artifactId>wechatProject</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>

2、添加jar包依赖
<!--web 支持-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

<!--jsp页面使用jstl标签-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>

<!--用于编译jsp-->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<!-- provided表明该包只在编译和测试的时候用! -->
<!--<scope>provided</scope>-->
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.2</version>
<scope>provided</scope>
</dependency>


3、使用maven的resources插件【打jar包极重要】
如果不使用resources插件,我们发现打jar包后,jar包里面没有包含webapp下面的内容


这里就要使用resources插件:

resources插件,在打jar包时可以将webapp目录下的文件进行打包

<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
<!-- resources插件,在打jar包时可以将webapp目录下的文件进行打包 -->
<resources>
<resource>
<!-- 指定resources插件处理哪个目录下的资源文件 -->
<directory>src/main/webapp</directory>
<!--注意此次必须要放在此目录下才能被访问到 -->
<targetPath>META-INF/resources</targetPath>
<includes>
<include>**/**</include>
</includes>
</resource>
<!-- 将项目中的配置文件,打包至classes下面 -->
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
</build>

 

添加以后打jar包,看图:


二、页面不要放在WEB-INF下面
可以发现,我的html页面不是写在WEB-INF下面的,而是直接在webapp下建了个文件夹进行存放。

如果按照我这个方法,页面写在WEB-INF下面,在本地环境运行是没问题的;
但如果部署到linux服务器上,他就报404。
所以我把WEB-INF删了,就可以正常运行。

三、修改application配置文件
#端口
server.port=8081

#配置页面读取路径
spring.mvc.view.prefix = /views/
spring.mvc.view.suffix = .html

总结
一般到我这一步,重新打包部署,项目页面就可以正常访问了;

原文链接


已有 0 条评论

    欢迎您,新朋友,感谢参与互动!