相关文章:
这里主要介绍下如何将项目打包成 war 包,并将其部署到服务器上进行访问
用到的工具如下
-
IntelliJ IDEA 2018.3.1 x64
-
apache-tomcat-9.0.36
-
apache-maven-3.5.2
一、编写项目
-
首先我们先创建一个 SpringBoot 项目,该项目里只有一个类,如下所示
@RestController public class HelloController { @GetMapping(value = "/hello") public String hello() { return "Hello World !"; } }
-
SpringBoot 项目直接打包,默认会打成 jar 包,因此这里我们将它改成 war 包的形式,并以外部 Tomcat 的方式来启动
-
将 SpringBoot 项目改为外置 Tomcat 启动,可以查看这篇文章:SpringBoot项目改为外置Tomcat启动
二、生成 war 包
- 接着我们先在 IDEA 中配置本地 Maven,然后点击 IDEA 面板右侧的 Maven 选项,点击 package 即可生成 war 包
三、部署项目并验证
-
方式一
-
将打包好的 war 包上传到 Tomcat 的 webapps 目录下
-
cd /usr/local/tomcat/apache-tomcat-9.0.36/webapps
-
rz demo-0.0.1-SNAPSHOT.war
-
-
当 Tomcat 启动时,会自动解压 webapps 目录下的 war 包,并启动项目
-
cd /usr/local/tomcat/apache-tomcat-9.0.36/bin
-
./startup.sh
-
-
在浏览器输入:IP + Tomcat 端口 + 项目名 + 访问路径,进行验证,结果符合预期
-
-
方式二
-
将打包好的 war 包上传到特定目录并解压
-
mkdir -p /data/demo
-
cd /data/demo
-
rz demo-0.0.1-SNAPSHOT.war
-
unzip demo-0.0.1-SNAPSHOT.war
-
-
修改 server.xml 配置文件 (在 Host 标签中插入)
-
cd /usr/local/tomcat/apache-tomcat-9.0.36/conf/
-
vim server.xml
<Context path="/test" docBase="/data/demo" debug="0" reloadbale="true"></Context>
-
:wq
-
-
Context 标签中几个参数作用如下
-
path
- 项目访问路径,如:http://localhost:8080/test/…
-
docBase
- 项目所在路径,即 war 包解压后文件所在的路径
-
debug
-
用于设置 Tomcat 的日志调试信息 (debug level)
-
0 表示提供最少的信息,9 表示提供最多的信息,数值越大越详细
-
-
reloadbale
- 当该属性设为 true 时,Tomcat 会在运行状态下会监控在 WEB-INF/classes 和 WEB-INF/lib 目录下 Class 文件的改动,如果监测到有 Class 文件被更新,则服务器会自动重新加载 Web 应用
-
-
启动 Tomcat
-
cd /usr/local/tomcat/apache-tomcat-9.0.36/bin
-
./startup.sh
-
-
在浏览器输入:IP + Tomcat 端口 + path + 访问路径,进行验证,结果符合预期
-
-
方式三
-
在 conf/Catalina/localhost 中添加一个 xml 文件
-
cd /usr/local/tomcat/apache-tomcat-9.0.36/conf/Catalina/localhost/
-
vim demo.xml
<Context docBase="/data/demo" debug="0" reloadbale="true"></Context>
-
:wq
-
-
使用这种方式,Tomcat 会将 xml 文件的名字作为 Web 应用的上下文路径,而不再理会 <Context> 标签中配置的 path 路径,因此在配置的时候,我们可以不用配置 path,即使写了也没有用
-
启动 Tomcat
-
cd /usr/local/tomcat/apache-tomcat-9.0.36/bin
-
./startup.sh
-
-
在浏览器输入:IP + Tomcat 端口 + xml 文件名 + 访问路径,进行验证,结果符合预期
-
-
后两种部署方式的区别在于
-
方式二
- server.xml 作为 Tomcat 的主要配置文件,一旦 Tomcat 启动后,便不会再去读取这个文件,因此想要部署新的 Web 应用必须重启 Tomcat
-
方式三
- Tomcat 会将 xml 文件的名字作为 Web 应用的上下文路径,当 Tomcat 启动后,会不断扫描
%CATALINA_HOME%/conf/Catalina/localhost
目录下的 xml 文件,当发现新的 xml 文件后,会将 xml 中指定的 Web 项目动态加载到 Tomcat 中,也就是说想要部署新的 Web 应用无需重启 Tomcat (热加载)
- Tomcat 会将 xml 文件的名字作为 Web 应用的上下文路径,当 Tomcat 启动后,会不断扫描
-