一般情况spring-boot-starter-web是自带tomcat(即springboot内嵌tomcat),所以打包直接生成jar包,用java -jar命令就可以启动。

但,有时我们希望用war格式的包,而不是jar格式的包。这就需要以下几步改造:

1.将项目的启动类Application.java继承SpringBootServletInitializer并重写configure方法

 1 @SpringBootApplication
 2     public class Application extends SpringBootServletInitializer {
 3
 4         @Override
 5         protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
 6             return application.sources(Application.class);
 7         }
 8
 9         public static void main(String[] args) throws Exception {
10             SpringApplication.run(Application.class, args);
11         }
12     }

2.在pom.xml文件中,project下面增加package标签

<packaging>war</packaging>

3.还是在pom.xml文件中,dependencies下面添加

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope>
</dependency>

注:<scope>provided</scope>表示在编译和测试时使用(不加它,打的包中会指定tomcat,用tomcat部署时会因tomcat版本报错;而加上它,打包时不会把内置的tomcat打进去)

还要注意:spring-boot项目使用的jdk版本要和tomcat的jdk版本一致(都是1.8);tomcat的lib中el-api.jar版本最好要是javax.el-api-3.0.0.jar版本,防止低版本冲突。

只需要以上3步就可以打包成war包,并且部署到tomcat中了。需要注意的是这样部署的request url需要在端口后加上项目的名字才能正常访问。

spring-boot更加强大的一点就是:即便项目是以上配置,依然可以用内嵌的tomcat来调试,启动命令和以前没变

转载于:https://www.cnblogs.com/wzk-0000/p/9505265.html

springboot如何使用外部tomcat容器相关推荐

  1. idea部署springboot项目到外部tomcat

    [README] 本文旨在记录idea部署springboot项目到外部tomcat的步骤: 第一次部署会踩很多坑儿,多查google,多重试: 第一次部署,不建议手动录入依赖,因为有可能遗漏:而且网 ...

  2. springboot项目在外部tomcat运行出现的问题

    1.去除自带的tomcat服务 <dependency><groupId>org.springframework.boot</groupId><artifac ...

  3. SpringBoot应用部署于外置Tomcat容器

    来源:https://my.oschina.net/hansonwang99/blog/1824245 概述 SpringBoot平时我们用的爽歪歪,爽到它自己连Tomcat都自集成了,我们可以直接编 ...

  4. springboot容器化打包部署_SpringBoot应用部署于外置Tomcat容器的方法

    0x01. 概述 SpringBoot平时我们用的爽歪歪,爽到它自己连Tomcat都自集成了,我们可以直接编写SBT启动类,然后一键开启内置的Tomcat容器服务,确实是很好上手.但考虑到实际的情形中 ...

  5. SpringBoot配置外部Tomcat项目启动流程源码分析(下)

    前言 SpringBoot应用默认以Jar包方式并且使用内置Servlet容器(默认Tomcat),该种方式虽然简单但是默认不支持JSP并且优化容器比较复杂.故而我们可以使用习惯的外置Tomcat方式 ...

  6. 深入分析SpringBoot源码如何内嵌Tomcat容器?

    作者:陌北有棵树,Java人,架构师社区合伙人! [一]总述 SpringBoot的诞生,极大的简化了Spring框架的使用过程,提升了开发效率,可以把它理解为一个整合包,使用了SpringBoot, ...

  7. SpringBoot webmvc项目导出war包并在外部tomcat运行产生的诸多问题以及解决方案

    背景: 有需求要将原来的Spring(3.2.6) + Springmvc + Hibernate项目重构为Springboot(1.5.2)项目 描述: 记录重构过程,以及期间遇到的种种问题和对应的 ...

  8. SpringBoot切换Tomcat容器,SpringBoot使用Jetty容器

    转载自 https://www.cnblogs.com/fanshuyao/p/8668059.html SpringBoot切换Tomcat容器, SpringBoot修改为Jetty容器, Spr ...

  9. SpringBoot配置外部tomcat启动时发生Caused by: java.nio.charset.MalformedInputException: Input length = 1错误

    错误来源 最近在编写springboot项目,需要配置外部tomcat.然而在配置好后启动测试时总是出现 org.yaml.snakeyaml.error.YAMLException: java.ni ...

最新文章

  1. 关于何种情况下使用DataGrid、DataList或Repeater的一些讨论
  2. 数据库备份定期删除程序的开发。
  3. Spark集群搭建【Spark+Hadoop+Scala+Zookeeper】
  4. Swift:print()vs println()vs NSLog()
  5. linux常用shell命令面试,shell经典笔试题目总结
  6. 团队冲刺站立会议07
  7. 数据结构探险系列—栈篇-学习笔记
  8. 5-2利用MapReduce进行数据排序
  9. Bootstrap HTML编码语法规范
  10. python reduce求和_Tensorflow 的reduce_sum()函数到底是什么意思,谁能解释下?
  11. 面向对象及软件工程——团队作业3
  12. Python-1-基础
  13. pandas.DataFrame及xgboost代码示例
  14. wpsmac历史版本_wps for mac 官方版
  15. iOS使用得图SDK开发VR播放器
  16. 全国计算机等级考试3月份报名时间,2021年3月全国计算机等级考试报名时间公布...
  17. 部署AdminLTE
  18. noteexpress选择网页作为题录的使用方法
  19. 关于wintc编译成功,输出黑框中无结果显示
  20. Unhandled exception in al.exe(KERNELBASE.DLL):0xE06D7363:Microsoft C++Exception

热门文章

  1. 字节大牛教你手撕Java学习,大厂直通车!
  2. linux 查看各个cpu使用率
  3. mendeley 笔记_免费文献管理器 Mendeley,其实比你想象的好用!
  4. 计算机开机和关机的音乐,电脑开关机音乐设置
  5. java中的传参是什么意思_如果作为参数传递,“字符串…参数”是什么意思?...
  6. oracle往游标中存数据,Oracle数据库:ORACLE11G在存储过程里面遍历游标
  7. 添加七牛云存储_七牛云存储如何正确设置流量带宽告警配置(阈值告警)?
  8. everything搭配什么软件_重磅推荐一款神级工具软件!有了它,90%的软件都可以卸载了!...
  9. vue中if和for指令不能同时使用
  10. springmvc网页找不到404_eclipse新建WebProject访问主页404错误的解决