首页 > 其他分享 >将 Spring Boot WAR 部署到 Tomcat 服务器

将 Spring Boot WAR 部署到 Tomcat 服务器

时间:2023-12-23 21:22:05浏览次数:51  
标签:tomcat Tomcat Spring boot 应用程序 Boot spring WAR

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 文件,我们需要完成以下步骤:

  1. 下载 Apache Tomcat 并将其解压缩到 tomcat 文件夹中
  2. 将我们的WAR文件从target/spring-boot-deployment.war复制到tomcat/webapps/文件夹
  3. 在终端中,导航到 tomcat/bin 文件夹并执行
    1. catalina.bat run(在Windows上)
    2. catalina.sh 运行(在基于 Unix 的系统上)
  4. 前往 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

相关文章

  • org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis
    Requestprocessingfailed;nestedexceptionisorg.mybatis.spring.MyBatisSystemException:nestedexceptionisorg.apache.ibatis.binding.BindingException:Parameter'keyWord'notfound.Availableparametersare[keyword,param1] 错误原因:我在mapper里加......
  • Spring Boot框架必知,满满干货!
    1、初识SpringBoot框架1.1SpringBoot框架定义SpringBoot并不是替代Spring框架的解决方案,而是和Spring框架紧密结合用于提升Spring开发者体验的工具,同时SpringBoot还集成了大量常用的第三方库配置,本质上是基于Spring的Web应用程序开发框架。1.2SpringBoot框架的优点可快速构......
  • SpringSecurity:自定义身份认证异常处理器不生效
    由于我配置了全局异常处理器,再配置身份认证异常处理器后,发现异常直接被全局异常处理器捕获了@RestControllerAdvice("com.gsy.wy")@Slf4jpublicclassGlobalException{@ExceptionHandler(Exception.class)publicResulthandlerException(Exceptione){l......
  • Java Spring Boot 集成 elasticsearch6.8.x
    在全文搜索领域,毫无疑问,当下elasticsearch应用广泛,其优势自不必说,凭借全文快速搜索,可以在短时内实现大数据量的查询。今天学习下在SpringBoot中集成elasticsearch开发,这里主要展示可以怎么用,至于开发人员向通过ElasticsearchORM封装,也可以参考下面的示例。环境:Sprin......
  • Spring MVC 源码分析 - HandlerMapping 组件(三)之 AbstractHandlerMethodMapping
    HandlerMapping组件HandlerMapping组件,请求的处理器匹配器,负责为请求找到合适的 HandlerExecutionChain 处理器执行链,包含处理器(handler)和拦截器们(interceptors)handler 处理器是Object类型,可以将其理解成HandlerMethod对象(例如我们使用最多的 @RequestMapping 注解所标......
  • spring-jcl 模块源码分析
    目录简介源码分析总结简介spring-jcl是spring用于处理日志打印的模块,被spring-core所依赖:jcl全称是JakartaCommonsLogging,是apache提供的日志门面(功能同slf4j),日志门面利用设计模式中的门面模式提供统一的日志接口,实际的日志实现可以任意更换。不过jcl支持的日志实现有限,已......
  • 基于SpringBoot+Vue的文理医院预约挂号系统设计实现(源码+lw+部署文档+讲解等)
    (文章目录)前言:heartpulse:博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌:heartpulse:......
  • Spring的BeanDefinitionRegistryPostProcessor接口详解
    BeanDefinitionRegistryPostProcessor介绍BeanDefinitionRegistryPostProcessor它是Spring框架的一个扩展点,用于对Bean定义的注册过程进行干预和定制,例如添加,修改或删除Bean定义等。BeanDefinitionRegistryPostProcessor它继承BeanFactoryPostProcessor接口,并在其基础上扩展了......
  • Spring的Bean后置处理器之AnnotationAwareAspectJAutoProxyCreator
    本文能帮你回答以下几个问题;AnnotationAwareAspectJAutoProxyCreator后置器的作用是什么?SpringAOP自动增强bean是如何实现的。如何在spring上下文添加AnnotationAwareAspectJAutoProxyCreator?如何利用ProxyFactory硬编码实现一个bean的增强?AnnotationAwareAspectJAutoProx......
  • Spring Boot之@Autowired注解使用区别,实战演示?
    ......