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就能夠看到本身的站點了

相關文章
相關標籤/搜索