spring boot改为war方式部署总结
背景:由于spring boot使用jar包部署的话,不方便增量更新,并且包太大不方便往生产环境上传,所以更改为war包,并部署到独立的tomcat中。下方内容分别为在linux服务器上tomcat的搭建和spring boot怎么从jar改为war。
一、服务器tomcat环境搭建:
1、下载安装tomcat:
根据spring boot项目的maven依赖树,确认tomcat版本为tomcat9,下载解压到服务器/opt/apache-tomcat-9.0.43。
2、修改端口号:
在/opt/apache-tomcat-9.0.43/conf/server.xml中修改tomcat HTTP端口和关闭指令端口。
关闭指定端口改为
<Server port="-1" shutdown="SHUTDOWN">
HTTP端口改为
<Connector port="5854" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
3、修改jdk版本:
在/opt/apache-tomcat-9.0.43/bin/catalina.sh中新增
CATALINA_HOME=/opt/apache-tomcat-9.0.43
#JAVA_HOME=/opt/jdk1.7.0_05
JAVA_HOME=/opt/jdk1.8.0_31
4、修改tomcat字符集:
在/opt/apache-tomcat-9.0.43/conf/logging.properties修改,
java.util.logging.ConsoleHandler.encoding将 UTF-8 修改为 GBK
5、新建关闭脚本:
参考其它的kill_tomcat.sh做一个,因为原shutdow.sh脚本会触发鉴权无法执行
APP_NAME="apache-tomcat-9.0.43"
PIDLIST=`ps -ef |grep $APP_NAME |awk '{print $2}'`
for PID in $PIDLIST;
do
kill -9 $PID 2>/dev/null;
done
6、修改Tomcat映射本地资源路径
在/opt/apache-tomcat-9.0.43/conf/Catalina/localhost,新建gdservice_3rd.xml
<Context docBase="/home/ipnet/webapps/gdservice_3rd_test" reloadable="true" />
7、给相关脚本授权:
在/opt/apache-tomcat-9.0.43/bin下,执行
chmod u+x *.sh
二、spring boot jar改war
1、修改启动类:
新加@ServletComponentScan注解,并且继承SpringBootServletInitializer。
2、修改POM打包方式:
<packaging>war</packaging>
3、修改POM去除tomcat引入:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
4、修改POM配置不要web.xml:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
</plugins>
</build>