zoukankan      html  css  js  c++  java
  • 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%in

    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就可以看到自己的站点了

  • 相关阅读:
    关于session
    信息查找界面
    Java8 新特性 (三)Java内置的函数式接口
    第二节:表的管理
    【LeetCode-数组】有序数组中的单一元素
    【LeetCode-字符串】一次编辑
    【LeetCode-贪心】跳跃游戏 II
    【LeetCode-数组】三个数的最大乘积
    学习进度条94
    学习进度条93
  • 原文地址:https://www.cnblogs.com/taiyonghai/p/9550050.html
Copyright © 2011-2022 走看看