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

创建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文件夹,这个需要手动创建。

附一张项目构架图:
SpringBoot打jar包,部署到linux服务器或本地,完美解决页面404等问题_第1张图片

一、maven打jar包命令

mvn clean install -Dmaven.test.skip=true

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

二、修改pom.xml文件

1、packaging改为jar

	com.wangys
    wechatProject
    1.0-SNAPSHOT
    jar

2、添加jar包依赖

		
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-webartifactId>
        dependency>

        
        <dependency>
            <groupId>javax.servletgroupId>
            <artifactId>jstlartifactId>
        dependency>

        
        <dependency>
            <groupId>org.apache.tomcat.embedgroupId>
            <artifactId>tomcat-embed-jasperartifactId>
            
            
        dependency>
        <dependency>
            <groupId>javax.servletgroupId>
            <artifactId>servlet-apiartifactId>
            <version>2.2version>
            <scope>providedscope>
        dependency>

3、使用maven的resources插件【打jar包极重要】

如果不使用resources插件,我们发现打jar包后,jar包里面没有包含webapp下面的内容

SpringBoot打jar包,部署到linux服务器或本地,完美解决页面404等问题_第3张图片
这里就要使用resources插件:

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

	<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-maven-pluginartifactId>
            plugin>
        plugins>
        
        <resources>
            <resource>
                
                <directory>src/main/webappdirectory>
                
                <targetPath>META-INF/resourcestargetPath>
                <includes>
                    <include>**/**include>
                includes>
            resource>
            
            <resource>
                <directory>src/main/resourcesdirectory>
            resource>
        resources>
    build>

添加以后打jar包,看图:
SpringBoot打jar包,部署到linux服务器或本地,完美解决页面404等问题_第4张图片

二、页面不要放在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下静态资源访问

你可能感兴趣的:(SpringBoot)