Springboot项目部署到服务器

http://jacksonlhj.cn/articles/2022/03/02/1646232487690.html

序言

因为公司需求需要打包成War部署,记录一下当时部署遇到的坑。
通常部署springboot项目都是打包成jar包或者war包两种方式。

服务器操做系统:windows

Don’t say too much,let get it!

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

<packaging>jar</packaging>

然后打开Maven点击package即可生成jar包。(前提idea已配置Maven)
在这里插入图片描述
把jar包放到服务器中,命令行指定到该jar的位置,执行一下命令即可。

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

java -jar xxxx.jar

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

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

二、war包
1、修改pom.xml

打包方式修改成war

<packaging>war</packaging>

添加以下引用

 <!--若使用外部tomcat加入该引用-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>
 <!--若使用到servlet加入该引用-->
<dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <scope>provided</scope>
        </dependency>   

2、修改SpringBoot启动类

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

@SpringBootApplication
@MapperScan(value = "com.Test.mapper")
public class PackinglistApplication extends SpringBootServletInitializer{//  若使用外部tomcat加上该代码

    /**
     *  若使用外部tomcat加上该代码
     */
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application){
        return application.sources(PackinglistApplication.class);
    }

    public static void main(String[] args) {
        SpringApplication.run(PackinglistApplication.class, args);
    }

}

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

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

Caused by: java.lang.UnsupportedClassVersionError: org/springframework/web/SpringServletContainerInitializer : Unsupported major.minor version 52.0 (unable to load class [org.springframework.web.SpringServletContainerInitializer])
	at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2404)
	at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:859)
	at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1333)
	at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1185)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Unknown Source)
	at org.apache.catalina.startup.WebappServiceLoader.loadServices(WebappServiceLoader.java:188)
	at org.apache.catalina.startup.WebappServiceLoader.load(WebappServiceLoader.java:159)
	at org.apache.catalina.startup.ContextConfig.processServletContainerInitializers(ContextConfig.java:1622)
	at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1129)
	at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:769)
	at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:299)
	at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:94)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5134)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	... 10 more

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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值