SpringBoot项目war包部署步骤及启动异常处理

概述

SpringBoot项目普遍使用jar包安装部署,这样是最方便也是推荐的方式,网上也是很多这样的教程。可对于传统war方式部署资料也是参差不齐,今天带小伙伴一起来看看war包部署的步骤。

一、jar包和war包

先来说说传统jar和war的几点区别(了解)
  • war是一个web模块,其中需要包括WEB-INF,是可以直接运行的WEB模块;jar一般只是包括一些class文件,在声明了Main_class之后是可以用java命令运行的。

  • war包是做好一个web应用后,通常是网站,打成包部署到容器中;jar包通常是开发时要引用通用类,打成包便于存放管理。

  • war是Sun提出的一种Web应用程序格式,也是许多文件的一个压缩包。这个包中的文件按一定目录结构来组织;classes目录下则包含编译好的Servlet类和Jsp或Servlet所依赖的其它类(如JavaBean)可以打包成jar放到WEB-INF下的lib目录下。

  • JAR文件格式以流行的ZIP文件格式为基础。与ZIP文件不同的是,JAR 文件不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序,并可被像编译器和 JVM 这样的工具直接使用。

  • WAR文件:就是一个Web应用程序,建立WAR文件,就是把整个Web应用程序(不包括Web应用程序层次结构的根目录)压缩起来,指定一个war扩展名。

SpringBoot可执行jar包

SpringBoot只要引入了web-starter后依赖引入了一个内嵌的tomcat包,发布运行程序时其实运行的是程序中的tomcat,因此不需要传统tomcat将程序添加到webapps目录中运行。

但是对于一些实施或者运维人员习惯了传统tomcat的方式部署程序,并且线上的项目经常性的修改页面(html)或者xml(sql)文件。如果是打成war包部署,运行tomcat会对war包自动解压,修改页面、xml、配置文件等直接修改文件就可以了。对于说打成jar包的程序,修改起来就麻烦了很多,总不能修改一个文件就重新上传jar包吧(当然jar包可能通过手动解压 -> 修改文件 -> 手动再打jar包)。所以打成war包的场景还是不少的。

二、打war包步骤

1. 修改pom.xml 将打包方式修改为war
<packaging>war</packaging>
2. 为开发时方便,需要手动添加内嵌tomcat(作用域为编译、测试期使用),并排除掉web-start中tomcat的依赖
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-web</artifactId>
	<exclusions>
		<exclusion>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-tomcat</artifactId>
		 </exclusion>
		</exclusions>
</dependency>
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-tomcat</artifactId>
	<scope>provided</scope>
</dependency>
3. 引导类(主类)继承ServletInitializer重写configure方法
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
public class SipApplication extends SpringBootServletInitializer {

  public static void main(String[] args) {
    SpringApplication.run(SipApplication.class, args);
  }
  @Override
  protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
      return builder.sources(SipApplication.class);
  }
}
4. 修改打成war文件名称及运行waven打包命令生成war包

修改pom.xml中finalName为打成war包文件名称

<build>
	<finalName>HRP-SIP</finalName>
	......

项目路径下执行maven打包命令

mvn clean package

打包成功后刷新项目target目录查看打war文件

在这里插入图片描述

5. 将war包丢到tomcat webapps目录并运行tomcat

如果运行成功恭喜,可是我没有运行成功。

出现类似如下报错
在这里插入图片描述

说明:我使用SpringBoot新版本2.4.3;本地tomcat版本8.0.9
再查看SpringBoot中内嵌的tomcat版本为9.0.43
在这里插入图片描述
应该是tomcat8.x不支持新版本的SpringBoot导致的错误,官网重新下载tomcat9.0.43(最新版tomcat)后继续运行war。
在这里插入图片描述
完成

再补充一个知识点如果tomcat启动时控制台存在乱码,修改apache-tomcat-9.0.43\conf\logging.properties文件如下属性为GBK即可。

在这里插入图片描述

总结

以上就是SpringBoot打成war包的全部,关于程序到底是jar还是war不可厚非,作为程序员都是基本技能。对比来说打成jar包,不管开发程序中和还是部署程序来说都更容易些,所以出错也会少些。

(用心写好每一行程序和文字:完~)

参与评论 您还未登录,请先 登录 后发表或查看评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:编程工作室 设计师:CSDN官方博客 返回首页

打赏作者

小流至江河

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值