一、简介

正常来说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教程的更多相关文章

  1. Web项目打成war包部署Tomcat时运行startup.bat直接闪退部署失败解决方案

    即上篇通过将web项目打成war包部署到Tomcat服务器,解决mysql问题后,又出现了新问题,真是一波三折,所以将解决过程分享给大家,希望能帮助到小伙伴们~ 将打好的war包拷贝到Tomcat的w ...

  2. springBoot项目打war包部署到tomcat上

    1 首先得在本地跑通. 2 处理启动类Application @SpringBootApplication public class Application extends SpringBootSer ...

  3. springboot项目打war包部署到服务器(eclipse & gradle环境)

    1.右键项目run as  -> run configurations,打开Run configurations弹出框 2.右键Gradle Project -> New Configur ...

  4. SpringBoot之打成war包部署到Tomcat

    正常情况下SpringBoot项目是以jar包的形式,正常情况下SpringBoot项目是以jar包的形式,并且SpringBoot是内嵌Tomcat服务器,所以每次重新启动都是用的新的Tomcat服 ...

  5. springboot 学习之路 5(打成war包部署tomcat)

    目录:[持续更新.....] spring 部分常用注解 spring boot 学习之路1(简单入门) spring boot 学习之路2(注解介绍) spring boot 学习之路3( 集成my ...

  6. 将web项目打成war包部署在tomcat步骤

    将web项目打成war包部署在tomcat步骤 1.将自己的项目打成war包. 2.将打包好的war复制到${tomcat.home}/webapps项目下. 3.在${tomcat.hom}/con ...

  7. SpringBoot 项目打war包 tomcat部署

    今天看了一下springboot的项目,个人习惯是接触新的语言或框架,首先要做的就是程序员届最常用的“Hello World”,然后进行项目部署,然今天部署却发现一直都是404,查看tomcat的we ...

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

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

  9. Web项目打成war包部署到tomcat时报MySQL Access denied for user 'root'@'localhost' (using password: YES)错误解决方案

    Web项目使用使用root账号root密码进行部署,通过Eclipse加载到Tomcat服务器可以发布成功,打成war包放到tomcat的webapps目录无法发布成功,报错: jdbc.proper ...

随机推荐

  1. [转载]PHP中PSR-[0-4]规范

      PHP是世界上最伟大的语言,这一点是毋庸置疑的吧.哈哈哈哈哈哈 .这个霸气的开头不错!(^__^) 但是正是因为伟大,所以用的人也就多了,人一多,再牛逼再伟大的东西,都会产生问题,逐渐就造成了很多 ...

  2. Static了解和复习继承。

    Static了解 static加在局部变量的前面改变其存储类型使之成为静态局部变量,会延长它的生存周期,但是不会改变其作用域. 静态成员是属于类的,而不是属于某个对象的.即便没有任何一个实例,类的静态 ...

  3. 简介 - SAFe(Scaled Agile Framework,规模化敏捷框架)

    简介 SAFe(Scaled Agile Framework,规模化敏捷框架) SAFe:https://www.scaledagileframework.com/ Scaled Agile Fram ...

  4. springboot~让我习惯了TDD的开发模式

    TDD是什么 TDD就是测试驱动开发,以测试用例为主导,去开发项目,业务代码该怎么写还是怎么写,在实现UI之前,可以先实现Test用例,通过test来实现对业务场景的模拟,最终让你的代码更稳定. 大叔 ...

  5. java --Integer 学习

    本文版权归 远方的风lyh和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 在网上看到一个面试题,没有完全做, 本代码基于JDK8 //下面代码运行结果是 public class ...

  6. VS Code 安装 C++ 调试环境

    在 VS CODE 中安装 C/C++ 插件 安装编译.调试环境 这里安装的是 MinGW, 官网如下:http://mingw.org/ 下载后,双击进行安装安装路径可以根据需要来修改: 然后选择需 ...

  7. Javascript 组合继承 原型链继承 寄生继承

    Javascript继承通常有三种方式. 第一种:组合式继承: function SuperType(name) { this.name = name; this.colors = ["re ...

  8. 【转载】ASP.NET生成图片的缩略图

    图片处理是C#程序开发中时常会涉及到的一个业务,除了图像的上传.保存以及下载等功能外,根据上传的图片生成一个缩略图也是常见业务,在C#语言中,可以通过Image类提供的相关方法对图片进行操作,如指定宽 ...

  9. .NET里面 abstract class和Interface有什么区别以及用法的展现?

    前言 很多新人对这个问题已经看到的厌倦或者是恶心了,有可能是因为比较难理解或者是未理解的情况下对它们的认知不够所以产生的想法是差不多,不用抽奖类和接口我一样能实现我想要的功能. 这句话确实不假,但是实 ...

  10. pycharm破解

    链接: https://share.weiyun.com/5DGGG3J (密码:hQq6) 将JetbrainsCrack-2.6.10-release-enc.jar放D盘1.pycharm下bi ...