SpringBoot打jar包,部署到linux服务器或本地,完美解决页面404等问题

导读

创建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

总结

一般到我这一步,重新打包部署,项目页面就可以正常访问了;
附几个参考链接:
1、idea下springboot打包成jar包和war包,并且可以在外部tomcat下运行访问到
2、Spring Boot の JSP模板配置+WEB-INF下静态资源访问

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值