Springboot项目部署到服务器

释放双眼,带上耳机,听听看~!

记录一下当时部署遇到的坑。
通常部署springboot项目都是打包成jar包或者war包两种方式。

服务器操做系统:windows

一、jar包
需要在pom.xml中修改打包方式


1
2
3
1<packaging>jar</packaging>
2
3

然后打开Maven点击package即可生成jar包。(前提idea已配置Maven)
Springboot项目部署到服务器
把jar包放到服务器中,命令行指定到该jar的位置,执行一下命令即可。

该命令窗台关闭后,项目也会关闭。


1
2
3
1java -jar xxxx.jar
2
3

后台运行命令,窗口关闭也不会关闭项目,要关闭执行杀死该进程的命令即可。(记住启动时的PID)


1
2
3
1java -jar xxxx.jar > log.file 2>&1 &
2
3

二、war包
1、修改pom.xml

打包方式修改成war


1
2
3
1<packaging>war</packaging>
2
3

添加以下引用


1
2
3
4
5
6
7
8
9
10
11
12
13
14
1 <!--若使用外部tomcat加入该引用-->
2        <dependency>
3            <groupId>org.springframework.boot</groupId>
4            <artifactId>spring-boot-starter-tomcat</artifactId>
5            <scope>provided</scope>
6        </dependency>
7 <!--若使用到servlet加入该引用-->
8<dependency>
9            <groupId>javax.servlet</groupId>
10            <artifactId>javax.servlet-api</artifactId>
11            <scope>provided</scope>
12        </dependency>  
13
14

2、修改SpringBoot启动类


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
1import org.mybatis.spring.annotation.MapperScan;
2import org.springframework.boot.SpringApplication;
3import org.springframework.boot.autoconfigure.SpringBootApplication;
4import org.springframework.boot.builder.SpringApplicationBuilder;
5import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
6
7@SpringBootApplication
8@MapperScan(value = "com.Test.mapper")
9public class PackinglistApplication extends SpringBootServletInitializer{//  若使用外部tomcat加上该代码
10
11    /**
12     *  若使用外部tomcat加上该代码
13     */
14    @Override
15    protected SpringApplicationBuilder configure(SpringApplicationBuilder application){
16        return application.sources(PackinglistApplication.class);
17    }
18
19    public static void main(String[] args) {
20        SpringApplication.run(PackinglistApplication.class, args);
21    }
22
23}
24
25

执行maven clean 和 maven package命令
生成war包后,可以在项目上的target文件夹中找到,自己可以重命名,最后放到自己tomcat服务器中的webapp下运行即可。

当时在服务器tomcat中部署报以下错误:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
1Caused by: java.lang.UnsupportedClassVersionError: org/springframework/web/SpringServletContainerInitializer : Unsupported major.minor version 52.0 (unable to load class [org.springframework.web.SpringServletContainerInitializer])
2   at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2404)
3   at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:859)
4   at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1333)
5   at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1185)
6   at java.lang.Class.forName0(Native Method)
7   at java.lang.Class.forName(Unknown Source)
8   at org.apache.catalina.startup.WebappServiceLoader.loadServices(WebappServiceLoader.java:188)
9   at org.apache.catalina.startup.WebappServiceLoader.load(WebappServiceLoader.java:159)
10  at org.apache.catalina.startup.ContextConfig.processServletContainerInitializers(ContextConfig.java:1622)
11  at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1129)
12  at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:769)
13  at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:299)
14  at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:94)
15  at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5134)
16  at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
17  ... 10 more
18
19

Unsupported major.minor version 52.0
原因是springboot与jdk版本不匹配,我在本地环境是springboot是2.0,jdk1.8运行是没有问题的,但服务器上的jdk是1.7的,所以报该错误。

给TA打赏
共{{data.count}}人
人已打赏
安全技术

C++ explicit关键字

2022-1-11 12:36:11

安全技术

Shell常用命令

2021-8-18 16:36:11

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索