Servlet 容器期望应用程序满足要部署的某些协定。对于 Tomcat,合约是 Servlet API 3.0。
为了让我们的应用程序满足这个契约,我们必须对源代码进行一些小的修改。
首先,我们需要打包一个 WAR 应用程序而不是 JAR。为此,我们将使用以下内容更改 pom.xml:
<packaging>war</packaging>
接下来,我们将修改最终的 WAR 文件名,以避免包含版本号:
<build>
<finalName>${artifactId}</finalName>
...
</build>
然后,我们将添加 Tomcat 依赖项:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
最后,我们将通过实现 SpringBootServletInitializer 接口来初始化 Tomcat 所需的 Servlet 上下文:
@SpringBootApplication
public class SpringBootTomcatApplication extends SpringBootServletInitializer {
}
为了构建我们的 Tomcat 可部署的 WAR 应用程序,我们将执行 mvn clean 包。之后,我们的WAR文件在target/spring-boot-deployment.war中生成(假设Maven artifactId为“spring-boot-deployment”)。
我们应该考虑到,这个新设置使我们的Spring Boot应用程序成为一个非独立的应用程序(如果我们想让它再次以独立模式工作,我们可以从tomcat依赖项中删除提供的范围)。
4. 将 WAR 部署到 Tomcat
要在 Tomcat 中部署和运行 WAR 文件,我们需要完成以下步骤:
- 下载 Apache Tomcat 并将其解压缩到 tomcat 文件夹中
- 将我们的WAR文件从target/spring-boot-deployment.war复制到tomcat/webapps/文件夹
- 在终端中,导航到 tomcat/bin 文件夹并执行
- catalina.bat run(在Windows上)
- catalina.sh 运行(在基于 Unix 的系统上)
- 前往 http://localhost:8080/spring-boot-deployment/hello
这是一个快速的 Tomcat 设置,因此请查看 Tomcat 安装指南以获取完整的设置指南。还有其他方法可以将 WAR 文件部署到 Tomcat。
标签:tomcat,Tomcat,Spring,boot,应用程序,Boot,spring,WAR From: https://www.cnblogs.com/zhyp/p/17923639.html