SpringBoot项目打war包部署Tomcat教程
一、简介
正常来说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教程相关推荐
- SpringBoot项目打成war包部署到外部Tomact运行
需求:使用SpringBoot自带的Tomact在线上环境部署特别不方便,尤其是只更改几个文件就得全部打包部署,所以需要把SpringBoot打成war包部署到Tomact 1.在pom.xml中 由 ...
- linux tomcat 发布servlet,SpringBoot项目使用war包部署至云服务器(Linux+Tomcat)
一.项目打包: 1.更改项目的启动方式 使用web.xml运行应用程序,指向Application,最后启动springboot(继承SpringBootServletInitialier,重写函数) ...
- Linux中把文件夹打成war包,SpringBoot中maven项目打成war包部署在liunx服务器上的方法...
说明:Spring Boot由于内嵌了如Tomcat,Jetty和Undertow这样的容器,也就是说可以直接跑起来,用不着再像Spring项目还需要外置的Tomcat等容器来进行部署工作了,通过启动 ...
- SpringBoot微服务项目构建war包 部署排除指定jar
文章目录 一.构建war包部署SpringBoot项目 二.构建war包 2.1. 适用范围 2.2. 构建war包 三.部署排除指定jar 3.1. 下载排除插件 3.2. 搜索部署排除指定jar ...
- SpringBoot项目打成War包??
SpringBoot项目打成War包 1. 首先在pom.xml里添加Tomcat依赖 <dependency> <groupId>org.spring ...
- 使用idea打包war包和maven项目打包war包放到tomcat中运行,以及报404错误的解决
使用idea打包war包和maven项目打包war包放到tomcat中运行,以及报404错误的解决 在tomcat下运行打包的war包,访问时显示404 浅谈打包war包的方式 第一种: 第一步: 第 ...
- spring-boot项目打war包并部署到本地的tomcat容器
一.修改打包形式 在pom.xml里设置 <packaging>war</packaging> 二.移除springboot内嵌入式tomcat插件 在pom.xml里找到sp ...
- 将项目打成war包并用tomcat部署的方法,步骤及注意点
部署的遇到第一个问题,就是tomcat和jdk的环境问题: 首先 理解为啥要关注这二者的环境呢?他们还是有关系的–tomcat 作为比较流行的java Web服务器也是用java来实现的一个比较大的软 ...
- springboot项目打war包发布到外置tomcat
第一步:修改pom.xml 1. <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> ...
最新文章
- Linux常用命令学习(shell 脚本)
- 第五周项目一-三角形类雏形(1)
- IBMX60笔记本装LINUX,《如何安装Storage Manager管理软件客户端并调IBM DS系列存储.doc...
- 三对角矩阵(带状矩阵)的压缩存储原理
- 图像处理--角点检测与匹配
- Windows Mobile Widget Emulator
- 玩下软工项目,第一轮--全局Context的获取,SQLite的建立与增删改查,读取用户通话记录信息...
- 操作系统linux入门,Linux操作系统基础(一)
- 淘宝京东卖家可以用到的小工具和素材资源网站
- [Node.js月刊]2018年第1期
- linux 查看 shell进程,Linux之shell 和进程
- 为什么使用nginx反向代理
- GridView“GridView1”激发了未处理的事件“PageIndexChanging”
- 联想小新触摸板驱动_联想lenovo笔记本触摸板驱动-联想触摸驱动 win7版下载16.2.5.0 官方版-西西软件下载...
- ZXing条码扫描----竖屏解决方案
- Global Mapper 裁剪
- bsd协议开源框架tcp服务器,BSD协议栈架构浅析
- matlab人机交互界面设计
- win7-去掉快捷方式小箭头.bat
- ChaosBlade:混沌工程简介(一)
热门文章
- object picker 微信小程序_微信小程序 demo分享
- php怎么改标题,PHP – 如何更改包含header.php的页面标题?
- c free语言自定义函数,C 语言free函数的工作原理
- linux上验证cudnn是否安装成功_deepin15.7中安装tensorflow+cuda9.0+cudnn7的步骤
- basicdatasourcefactory mysql_Java基础-DBCP连接池(BasicDataSource类)详解
- mysql查询表名匹配只有字母的_MySQL按某些匹配字母查询表
- java tick_Java中的Clock tick()方法
- mysql.sock 111,错误2002(HY000):无法通过套接字’/var/run/mysqld/mysqld.sock’连接到本地MySQL服务器(111)...
- 《MySQL——幻读与next-key lock与间隙锁带来的死锁》
- CGPA的完整形式是什么?