一、简介

正常来说SpringBoot项目就直接用jar包来启动,使用它内部的tomcat实现微服务,但有些时候可能有部署到外部tomcat的需求,本教程就讲解一下如何操作

二、修改pom.xml

将要部署的module的pom.xml文件<packaging>节点设置为war

<!-- 默认打包方式为jar,如果是用module做父级则需要修改为pom,如果使用外部tomcat可以修改为war, 子级module的打包方式只能是jar或者war -->
<packaging>war</packaging>

有可能打包时会提示找不到maven-war-plugin那就在pom.xml中增加如下配置,加在<plugins>节点中

<plugin><artifactId>maven-war-plugin</artifactId><version>3.2.0</version>
</plugin>

三、修改main()方法启动类

继承SpringBootServletInitializer基类来初始化SpringBoot,重写里面的configure方法并把自己注入进去

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.context.annotation.ComponentScan;@ComponentScan("com.ysl.ts")//扫描common模块的包
@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)
//继承war包SpringBoot初始化基类
public class WebBaseApp extends SpringBootServletInitializer {//重写配置方法
    @Overrideprotected SpringApplicationBuilder configure(SpringApplicationBuilder application) {return application.sources(WebBaseApp.class);}public static void main(String[] args) {SpringApplication.run(WebBaseApp.class, args);}
}

四、禁用jmx内部bean监控(可选)

如果我们部署的war中都有某个module的引用,而这个module中又有bean就会出现如下错误,就是两个war都注册了相同的bean导致的

org.springframework.jmx.export.UnableToRegisterMBeanException: Unable to register MBean

在application.properties中增加如下配置禁用掉jmx内部监控即可

spring.jmx.enabled=false

五、附录tomcat安装

下载tomcat 地址:http://tomcat.apache.org/

解压缩到指定目录:C:\apache-tomcat-8.5.33

1、添加环境变量

变量名:CATALINA_HOME
变量值:C:\apache-tomcat-8.5.33PATH中添加:
%CATALINA_HOME%\bin

2、进入tomcat的解压缩目录,进入bin运行startup.bat(如果闪退,检查环境变量是否配置正确)

打开浏览器http://localhost:8080就可以看到如下图就代表启动成功

3、配置管理员

打开tomcat目录,进入conf目录,打开tomcat-users.xml,可以添加如下用户,或者解开默认注释也行,保存重启,关闭startup.bat的窗口再执行shutdown.bat彻底关闭tomcat后再启动

<!--<role rolename="tomcat"/><role rolename="role1"/><user username="tomcat" password="<must-be-changed>" roles="tomcat"/><user username="both" password="<must-be-changed>" roles="tomcat,role1"/><user username="role1" password="<must-be-changed>" roles="role1"/>
-->
<role rolename="manager-gui"/>
<user username="admin" password="" roles="manager-gui"/>

启动后点击Manager APP输入admin密码空确定能进入,代表管理员配置完毕

4、部署站点

将自己的war放入某个位置并记好路径

打开tomcat的目录,进入conf目录,打开server.xml,找到Host节点在其内部增加如下节点

path:访问目录 如http://localhost:8080/ysl_web/

docBase:站点war目录,可以是相对路径也可以是绝对路径,他会自动对war包进行解压缩并存放到tomcat的webapps目录下

<Context path="/ysl_web" docBase="D:/TravelSupport/WebSite/ysl-ts-web-base-1.0-SNAPSHOT.war" debug="0" privileged="true" reloadable="true"/>

重启tomcat,如果报错就在tomcat的logs目录下查看日志,启动成功,点击Manager App,点击/ysl_web就可以看到自己的站点了

转载于:https://www.cnblogs.com/taiyonghai/p/9550050.html

SpringBoot项目打war包部署Tomcat教程相关推荐

  1. SpringBoot项目打成war包部署到外部Tomact运行

    需求:使用SpringBoot自带的Tomact在线上环境部署特别不方便,尤其是只更改几个文件就得全部打包部署,所以需要把SpringBoot打成war包部署到Tomact 1.在pom.xml中 由 ...

  2. linux tomcat 发布servlet,SpringBoot项目使用war包部署至云服务器(Linux+Tomcat)

    一.项目打包: 1.更改项目的启动方式 使用web.xml运行应用程序,指向Application,最后启动springboot(继承SpringBootServletInitialier,重写函数) ...

  3. Linux中把文件夹打成war包,SpringBoot中maven项目打成war包部署在liunx服务器上的方法...

    说明:Spring Boot由于内嵌了如Tomcat,Jetty和Undertow这样的容器,也就是说可以直接跑起来,用不着再像Spring项目还需要外置的Tomcat等容器来进行部署工作了,通过启动 ...

  4. SpringBoot微服务项目构建war包 部署排除指定jar

    文章目录 一.构建war包部署SpringBoot项目 二.构建war包 2.1. 适用范围 2.2. 构建war包 三.部署排除指定jar 3.1. 下载排除插件 3.2. 搜索部署排除指定jar ...

  5. SpringBoot项目打成War包??

    SpringBoot项目打成War包 1. 首先在pom.xml里添加Tomcat依赖     <dependency>         <groupId>org.spring ...

  6. 使用idea打包war包和maven项目打包war包放到tomcat中运行,以及报404错误的解决

    使用idea打包war包和maven项目打包war包放到tomcat中运行,以及报404错误的解决 在tomcat下运行打包的war包,访问时显示404 浅谈打包war包的方式 第一种: 第一步: 第 ...

  7. spring-boot项目打war包并部署到本地的tomcat容器

    一.修改打包形式 在pom.xml里设置 <packaging>war</packaging> 二.移除springboot内嵌入式tomcat插件 在pom.xml里找到sp ...

  8. 将项目打成war包并用tomcat部署的方法,步骤及注意点

    部署的遇到第一个问题,就是tomcat和jdk的环境问题: 首先 理解为啥要关注这二者的环境呢?他们还是有关系的–tomcat 作为比较流行的java Web服务器也是用java来实现的一个比较大的软 ...

  9. springboot项目打war包发布到外置tomcat

    第一步:修改pom.xml 1. <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> ...

最新文章

  1. Linux常用命令学习(shell 脚本)
  2. 第五周项目一-三角形类雏形(1)
  3. IBMX60笔记本装LINUX,《如何安装Storage Manager管理软件客户端并调IBM DS系列存储.doc...
  4. 三对角矩阵(带状矩阵)的压缩存储原理
  5. 图像处理--角点检测与匹配
  6. Windows Mobile Widget Emulator
  7. 玩下软工项目,第一轮--全局Context的获取,SQLite的建立与增删改查,读取用户通话记录信息...
  8. 操作系统linux入门,Linux操作系统基础(一)
  9. 淘宝京东卖家可以用到的小工具和素材资源网站
  10. [Node.js月刊]2018年第1期
  11. linux 查看 shell进程,Linux之shell 和进程
  12. 为什么使用nginx反向代理
  13. GridView“GridView1”激发了未处理的事件“PageIndexChanging”
  14. 联想小新触摸板驱动_联想lenovo笔记本触摸板驱动-联想触摸驱动 win7版下载16.2.5.0 官方版-西西软件下载...
  15. ZXing条码扫描----竖屏解决方案
  16. Global Mapper 裁剪
  17. bsd协议开源框架tcp服务器,BSD协议栈架构浅析
  18. matlab人机交互界面设计
  19. win7-去掉快捷方式小箭头.bat
  20. ChaosBlade:混沌工程简介(一)

热门文章

  1. object picker 微信小程序_微信小程序 demo分享
  2. php怎么改标题,PHP – 如何更改包含header.php的页面标题?
  3. c free语言自定义函数,C 语言free函数的工作原理
  4. linux上验证cudnn是否安装成功_deepin15.7中安装tensorflow+cuda9.0+cudnn7的步骤
  5. basicdatasourcefactory mysql_Java基础-DBCP连接池(BasicDataSource类)详解
  6. mysql查询表名匹配只有字母的_MySQL按某些匹配字母查询表
  7. java tick_Java中的Clock tick()方法
  8. mysql.sock 111,错误2002(HY000):无法通过套接字’/var/run/mysqld/mysqld.sock’连接到本地MySQL服务器(111)...
  9. 《MySQL——幻读与next-key lock与间隙锁带来的死锁》
  10. CGPA的完整形式是什么?