ubuntu 18.04 server下tomcat部署sprongboot項目

1 springboot項目相關

1.1 修改pom.xml文件依賴

若是要將最終的打包形式改成war的話,還須要對pom.xml文件進行修改,由於spring-boot-starter-web中包含內嵌的tomcat容器,因此直接部署在外部容器會衝突報錯。這裏有兩種方法能夠解決,以下java

方法一:web

web依賴中去除tomcat的依賴spring

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </exclusion>
    </exclusions>
</dependency>

在這裏須要移除對嵌入式Tomcat的依賴,這樣打出的war包中,在lib目錄下才不會包含Tomcat相關的jar包,不然將會出現啓動錯誤。還有一個很關鍵的關鍵點,就是tomcat-embed-jasperscope必須是providedapache

<dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-jasper</artifactId>
    <scope>provided</scope>
</dependency>

方法二:bootstrap

由於SpringBootServletInitializer須要依賴javax.servlet,而tomcat-embed-jasper下面的tomcat-embed-core中就有這個javax.servlet,若是沒用provided,最終打好的war裏面會有servlet-api這個jar,這樣就會跟tomcat自己的衝突了。這個關鍵點一樣適應於下面說的第二種方法。vim

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-jasper</artifactId>
    <scope>provided</scope>
</dependency>

provided的做用上面已經介紹的很透徹了,這裏就不囉嗦了,這種方式的好處是,打包的war包同時適合java -jar命令啓動以及部署到外部容器中。api

1.2 修改打包方式

<packaging>war</packaging>

1.3 修改啓動類

外部容器部署的話,就不能依賴於Applicationmain函數了,而是要以相似於web.xml文件配置的方式來啓動Spring應用上下文,此時咱們須要在啓動類中繼承SpringBootServletInitializer並實現configure方法:瀏覽器

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer;

@SpringBootApplication
public class Chapter05Application extends SpringBootServletInitializer {

    [@Override](https://my.oschina.net/u/1162528)
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(Chapter05Application.class);
    }

    public static void main(String[] args) {
        SpringApplication.run(Chapter05Application.class, args);
    }
}

#2 tomcat 相關tomcat

2.1 下載

網址:http://tomcat.apache.org/springboot

2.2 解壓安裝

將安裝包移動到你想要的位置,而後解壓:

tar -zxvf apache-tomcat-8.5.34.tar.gz ./

重命名,這樣後面的操做能夠少打一點字。

mv apache-tomcat-8.5.34 tomcat

設置環境變量

vim /etc/profile

在文件末尾中加入:

#set tomcat environment
CATALINA_HOME=/usr/local/tomcat
export CATALINA_HOME

從新加載環境變量的配置文件:

source /etc/profile

進入tomcat文件夾

cd  /usr/local/tomcat

編輯catalina.sh文件:

vim bin/catalina.sh

在文檔前面加入:

CATALINA_HOME=/usr/local/tomcat
JAVA_HOME=/usr/local/java/jdk1.8.0_181

CATALINA_HOMEtomcat的安裝路徑,JAVA_HOME是上面JDK的安裝路徑,把上面的路徑改爲你本身的安裝路徑便可。

2.3 啓動tomcat

當前位置是/usr/local/tomcat

./bin/startup.sh

顯示下面信息,表示啓動成功:

Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/java/jdk1.8.0_181
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.

2.4 中止tomcat

./bin/shutdown.sh

2.5 檢測tomcat是否安裝成功

瀏覽器訪問http://localhost:8080 會顯示tomcat的信息。

2.6 修改tomcat端口

vim /usr/local/tomcat/conf/server.xml

找到8080端口的位置,將他修改成80。

2.7 將tomcat設置爲開機啓動

複製catalina.sh/etc/init.d目錄下,並重命名爲tomcat

cp /usr/local/tomcat/bin/catalina.sh   /etc/init.d/tomcat

設置權限

chmod  +x  /etc/init.d/tomcat

在自啓動文件夾下建立tomcat的軟(或硬)鏈接,K表示不自啓動,S表示自啓動。

ln -s /etc/init.d/tomcat /etc/rc2.d/S99tomcat

完成,重啓測試便可。

3 部署項目

刪除tomcatwebapps下的全部文件

rm -rf /usr/local/tomcat/webapps/*

將項目的war包上傳到tomcatwebapps下,而且重命名爲ROOT.war

啓動tomcat,訪問http://localhost

重啓測試tomcat是否正常啓動。

相關文章
相關標籤/搜索