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 { //重写配置方法
@Override
protected 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.33 PATH中添加:
%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就可以看到自己的站点了
SpringBoot项目打war包部署Tomcat教程的更多相关文章
- Web项目打成war包部署Tomcat时运行startup.bat直接闪退部署失败解决方案
即上篇通过将web项目打成war包部署到Tomcat服务器,解决mysql问题后,又出现了新问题,真是一波三折,所以将解决过程分享给大家,希望能帮助到小伙伴们~ 将打好的war包拷贝到Tomcat的w ...
- springBoot项目打war包部署到tomcat上
1 首先得在本地跑通. 2 处理启动类Application @SpringBootApplication public class Application extends SpringBootSer ...
- springboot项目打war包部署到服务器(eclipse & gradle环境)
1.右键项目run as -> run configurations,打开Run configurations弹出框 2.右键Gradle Project -> New Configur ...
- SpringBoot之打成war包部署到Tomcat
正常情况下SpringBoot项目是以jar包的形式,正常情况下SpringBoot项目是以jar包的形式,并且SpringBoot是内嵌Tomcat服务器,所以每次重新启动都是用的新的Tomcat服 ...
- springboot 学习之路 5(打成war包部署tomcat)
目录:[持续更新.....] spring 部分常用注解 spring boot 学习之路1(简单入门) spring boot 学习之路2(注解介绍) spring boot 学习之路3( 集成my ...
- 将web项目打成war包部署在tomcat步骤
将web项目打成war包部署在tomcat步骤 1.将自己的项目打成war包. 2.将打包好的war复制到${tomcat.home}/webapps项目下. 3.在${tomcat.hom}/con ...
- SpringBoot 项目打war包 tomcat部署
今天看了一下springboot的项目,个人习惯是接触新的语言或框架,首先要做的就是程序员届最常用的“Hello World”,然后进行项目部署,然今天部署却发现一直都是404,查看tomcat的we ...
- 【转】将项目打成war包并用tomcat部署的方法,步骤及注意点
部署的遇到第一个问题,就是tomcat和jdk的环境问题: 首先 理解为啥要关注这二者的环境呢?他们还是有关系的–tomcat 作为比较流行的java Web服务器也是用java来实现的一个比较大的软 ...
- Web项目打成war包部署到tomcat时报MySQL Access denied for user 'root'@'localhost' (using password: YES)错误解决方案
Web项目使用使用root账号root密码进行部署,通过Eclipse加载到Tomcat服务器可以发布成功,打成war包放到tomcat的webapps目录无法发布成功,报错: jdbc.proper ...
随机推荐
- 《http权威指南》读书笔记5
概述 最近对http很感兴趣,于是开始看<http权威指南>.别人都说这本书有点老了,而且内容太多.我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做 ...
- JavaScript 对象(上)
简述: 1.是 JavaScript 的基本类型 2.是一种复合值,可通过名字访问这些值 3.可看作属性的无序集合,每个属性都是一个名/值对(属性名是字符串或标识符) 4.可以从一个称为原型的对象继承 ...
- Python - IPython
1- IPython简介 HomePage:http://ipython.org/ IPython(interactive Python) provides a rich architecture f ...
- Python档案袋(变量与流程控制)
变量与运算 得到数据类型: ii=100 print(type(ii)) #输出:<class 'int'> 强制转换: ii=100 iix=str(ii) #可为int str flo ...
- Postgresql-模糊匹配大杀器
# Postgresql-模糊匹配大杀器 ## 问题背景 随着pg越来越强大,abase目前已经升级到5.0(postgresql10.4),目前abase5.0继承了全文检索插件(zhparser) ...
- 教你使用docker部署淘宝rap2服务
什么是rap2 先来说说起因,在上一个星期的分享会上,谈到前后端联调上,有同事提到了rap2,特意去了解了一下,觉得使用这个东西来进行前后端的接口联调来真是太方便了,对比我们之前公司内部开发的API ...
- Android--通过Application传递数据
在整个Android程序中,有时需要保存某些全局的数据(如:用户信息),方便在程序的任何地方调用.在Activity之间数据传递中有一种比较使用的方式,就是全局对象,使用过J2EE的都应该知道Java ...
- 大数据入门基础系列之Hadoop1.X、Hadoop2.X和Hadoop3.X的多维度区别详解(博主推荐)
不多说,直接上干货! 在前面的博文里,我已经介绍了 大数据入门基础系列之Linux操作系统简介与选择 大数据入门基础系列之虚拟机的下载.安装详解 大数据入门基础系列之Linux的安装详解 大数据入门基 ...
- python练习六—简单的论坛
进行简单的web应用之后,接下来就应该学习python连接数据库,这个练习就是在上个练习的基础上将信息保存到数据库,这个联系也没有什么特别的,有之前java web的经验的话,很好理解,主要还是一个M ...
- Go Web:RESTful web service示例
RESTful架构的简介 web服务的架构模式主要有2种:SOAP和REST.SOAP和REST都回答了同一个问题:如何访问web服务. SOAP风格的程序是功能驱动的,要借助xml来传递数据,明确表 ...