SpringBoot项目打war包部署Tomcat教程

1、简介

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

 

2、修改pom.xml

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

<!-- 默认打包方式为jar,若是是用module作父级则须要修改成pom,若是使用外部tomcat能够修改成war, 子级module的打包方式只能是jar或者war -->
<packaging>war</packaging>

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

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

 

3、修改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);
    }
}

 

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

若是咱们部署的war中都有某个module的引用,而这个module中又有bean就会出现以下错误,就是两个war都注册了相同的bean致使的tomcat

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

在application.properties中增长以下配置禁用掉jmx内部监控便可app

spring.jmx.enabled=false

 

5、附录tomcat安装

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

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

一、添加环境变量

变量名:CATALINA_HOME
变量值:C:\apache-tomcat-8.5.33

PATH中添加:
%CATALINA_HOME%\bin

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

打开浏览器http://localhost:8080就能够看到以下图就表明启动成功ide

三、配置管理员

打开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密码空肯定能进入,表明管理员配置完毕

四、部署站点

将本身的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就能够看到本身的站点了

相关文章
相关标签/搜索