SpringBoot打成war包,部署到Tomcat服务器

SpringBoot打成war包,部署到Tomcat服务器nbsp nbsp nbsp nbsp SpringBoot 默认达成 jar 包 使用 SpringBoot 构想 web 应用 默认使用内置的 Tomcat 但考虑到项目需要集群部署或者进行优化时 就需要打成 war 包部署到外部的 Tomcat 服务器中 一 修改 pom xml 文件将默认的 jar 方式改为 war lt groupId gt com example lt groupId gt lt artifactId gt applicat

    SpringBoot默认达成jar包,使用SpringBoot构想web应用,默认使用内置的Tomcat。但考虑到项目需要集群部署或者进行优化时,就需要打成war包部署到外部的Tomcat服务器中。

    本文所使用SpringBoot版本为:2.0.3.RELEASE

一、修改pom.xml文件将默认的jar方式改为war:

 
  com.example  
  application  
  0.0.1-SNAPSHOT  
    
    
    
  war

二、排除内置的Tomcat容器(两种方式都可):

1.排除spring-boot-starter-web中的Tomcat

 
   
   
  org.springframework.boot  
  spring-boot-starter-web  
   
   
   
   
  org.springframework.boot  
  spring-boot-starter-tomcat   

2.添加依赖

 
   
   
  org.springframework.boot  
  spring-boot-starter-tomcat   
     
  provided 

三、继承org.springframework.boot.web.servlet.support.SpringBootServletInitializer,实现configure方法:

Note that a WebApplicationInitializer is only needed if you are building a war file and deploying it. 

如果你喜欢运行一个嵌入式Web服务器,那么你根本不需要这个。

启动类代码:

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

1.方式一,启动类继承SpringBootServletInitializer实现configure:

@SpringBootApplication public class Application extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(Application.class, args);  } @Override  protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(Application.class);  } }

2.方式二,新增加一个类继承SpringBootServletInitializer实现configure:

public class ServletInitializer extends SpringBootServletInitializer { @Override  protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { //此处的Application.class为带有@SpringBootApplication注解的启动类  return builder.sources(Application.class);  } } 

注意事项:

使用外部Tomcat部署访问的时候,application.properties(或者application.yml)中配置的

server.servlet.context-path=

将失效,请使用tomcat的端口,tomcat,webapps下项目名进行访问。

为了防止应用上下文所导致的项目访问资源加载不到的问题,

建议pom.xml文件中
标签下添加
标签:

 
   
    
     
  war包名称  
   
   
   
   
  org.springframework.boot  
  spring-boot-maven-plugin   

使用mvn命令行打包,运行:

clean是清除之前的包,-Dmaven.test.skip=true是忽略测试代码

jar 方式打包,使用内置Tomcat:mvn clean install -Dmaven.test.skip=true

运行:java -jar 包名.jar

war方式打包,使用外置Tomcat:mvn clean package -Dmaven.test.skip=true

运行:${Tomcat_home}/bin/目录下执行startup.bat(windows)或者startup.sh(linux)







版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/229830.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 下午3:47
下一篇 2026年3月16日 下午3:47


相关推荐

  • 工业智能体来了?

    工业智能体来了?

    2026年3月16日
    2
  • 如何计算系统用户并发数,系统最大并发数

    如何计算系统用户并发数,系统最大并发数与并发用户数相关的概念还包括 并发用户数 系统用户数 和 同时在线用户数 下面用一个实际的例子来说明它们之间的差别 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 假设有一个 OA 系统 该系统有 2000 个使用用户 这就是说 可能使用该 OA 系统的用户总数是 2000 名 这个概念就是 系统用户数 该系统有一个 在线统计 功能 系统用一个全局变量记数所有已登录的用户 从在线统计功能中可以得到 最高峰时有 500 人在线 这

    2026年3月18日
    2
  • kubernetes安装及集群搭建

    kubernetes安装及集群搭建

    2021年5月29日
    85
  • invoke方法详解

    invoke方法详解JspFragment.invoke方法是JspFragment最重要的方法,利用这个方法可以控制是否执行和输出标签体的内容、是否迭代执行标签体的内容或对标签体的执行结果进行修改后再输出。例如:在标签处理器中如果没有调用JspFragment.invoke方法,其结果就相当于忽略标签体内容;在标签处理器中重复调用JspFragment.invoke方法,则标签体内容将会被重复执行;若想

    2022年6月5日
    66
  • having 用法

    having 用法SELECTfee.bank_code,COUNT(1)cFROMt_fp_feefeeWHEREfee.fcd>=DATE’2019-6-13’GROUPBYfee.bank_codeHAVINGCOUNT(1)>=1000注意COUNT(1)不能改为C,不能使用别名…

    2022年6月18日
    32
  • python flask debug_pycharm配置debug

    python flask debug_pycharm配置debugflask项目如果在开发的时候不打开Debug模式的话,我们想要看项目中的报错信息就只能去控制台查看,会比较麻烦,而且如果不开启debug模式,我们每一次调整代码都需要将服务器重新启动,是非常麻烦的一件事,所以我们最好是将debug模式打开但是我在pycharm中使用代码开启debug模式总是打不开。使用代码打开debug模式的教程可以参考孟船长Flask第五篇—-设置debug模式的这…

    2022年8月25日
    12

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号