一. 新建spring boot工程
1. 把项目打包方式改为war包
<groupId>com.example</groupId>
<artifactId>tomcat-demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
2. 引入spring-boot-starter-tomcat
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 设置为provided, 在打包时会将该包排除,因为要放到独立的tomcat中运行,不需要。 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
3. 修改启动类,继承 SpringBootServletInitializer 重写 configure 方法,并加入测试方法hello()。
@RestController
@SpringBootApplication
public class TomcatDemoApplication extends SpringBootServletInitializer{
public static void main(String[] args) {
SpringApplication.run(TomcatDemoApplication.class, args);
}
@GetMapping("/hello")
public String hello() {
return "hello world";
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(TomcatDemoApplication.class);
}
}
4. 打包(跳过测试)
package -DskipTests
二. 把项目部署到Tomat中
1. 把打好的war包放到Tomcat的webapp/ROOT目录下并解压
[root@rocketmq-nameserver1 ROOT]# pwd
/home/zhaoxing/apache-tomcat-8.5.32/webapps/ROOT
[root@rocketmq-nameserver1 ROOT]# ls
tomcat-demo-0.0.1-SNAPSHOT.war
[root@rocketmq-nameserver1 ROOT]# unzip tomcat-demo-0.0.1-SNAPSHOT.war
Archive: tomcat-demo-0.0.1-SNAPSHOT.war
creating: META-INF/
inflating: META-INF/MANIFEST.MF
creating: org/
creating: org/springframework/
creating: org/springframework/boot/
creating: org/springframework/boot/loader/
creating: org/springframework/boot/loader/data/
...
[root@rocketmq-nameserver1 ROOT]# ls
META-INF org tomcat-demo-0.0.1-SNAPSHOT.war WEB-INF
2. 在Tomcat bin目录下启动脚本start.sh
[root@rocketmq-nameserver1 ROOT]# cd /home/zhaoxing/apache-tomcat-8.5.32/bin/
[root@rocketmq-nameserver1 bin]# ls
bootstrap.jar commons-daemon.jar daemon.sh setclasspath.sh startup.sh tool-wrapper.sh
catalina.bat commons-daemon-native.tar.gz digest.bat shutdown.bat tomcat-juli.jar version.bat
catalina.sh configtest.bat digest.sh shutdown.sh tomcat-native.tar.gz version.sh
catalina-tasks.xml configtest.sh setclasspath.bat startup.bat tool-wrapper.bat
[root@rocketmq-nameserver1 bin]# ./startup.sh
Using CATALINA_BASE: /home/zhaoxing/apache-tomcat-8.5.32
Using CATALINA_HOME: /home/zhaoxing/apache-tomcat-8.5.32
Using CATALINA_TMPDIR: /home/zhaoxing/apache-tomcat-8.5.32/temp
Using JRE_HOME: /opt/jdk1.8.0_172
Using CLASSPATH: /home/zhaoxing/apache-tomcat-8.5.32/bin/bootstrap.jar:/home/zhaoxing/apache-tomcat-8.5.32/bin/tomcat-juli.jar
Tomcat started.
[root@rocketmq-nameserver1 bin]# ps -ef |grep tomcat
root 64030 1 66 10:58 pts/0 00:00:06 /opt/jdk1.8.0_172/bin/java -Djava.util.logging.config.file=/home/zhaoxing/apache-tomcat-8.5.32/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /home/zhaoxing/apache-tomcat-8.5.32/bin/bootstrap.jar:/home/zhaoxing/apache-tomcat-8.5.32/bin/tomcat-juli.jar -Dcatalina.base=/home/zhaoxing/apache-tomcat-8.5.32 -Dcatalina.home=/home/zhaoxing/apache-tomcat-8.5.32 -Djava.io.tmpdir=/home/zhaoxing/apache-tomcat-8.5.32/temp org.apache.catalina.startup.Bootstrap start
root 64047 63968 0 10:58 pts/0 00:00:00 grep --color=auto tomcat
3. 测试
[root@rocketmq-nameserver1 bin]# curl http://127.0.0.1:8080/hello
hello world[root@rocketmq-nameserver1 bin]#
注:主机上访问关闭防火墙