Tomcat 配置War启动项目

本文介绍如何在Tomcat中配置项目的启动顺序,确保特定项目能够按需启动,以实现服务的正常部署。通过实例说明如何使一个项目依赖于其他两个项目的启动。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       在项目部署的时候会有场景,项目A的启动,必须依赖项目B和项目C优先启动。这就需要在Tomcat重新启动的时候不要控制项目的启动顺序,来确保服务的正常部署。

       例如如下项目mq-hospital.war的项目启动,必须依赖ManagerProvider.war和ServiceBuilder-dubbo-http.war的优先部署。如图:把所有的包都放到tomcat webapps中,然后配置conf/server.xml 文件。

        然后重启tomcat,观察logs/catalina.out日志发现,tomcat启动的时候先加载了ServiceBuilder-dubbo-http和ManagerProvider后然后在加载启动mq-hospital。

### 配置Tomcat启动时不依赖WAR部署应用 为了使 Tomcat启动时能够不依赖于 WAR 来部署应用程序,可以采用多种方法实现这一目标。一种常见的方式是通过修改 `server.xml` 文件中的 `<Host>` 元素属性以及利用 JAR 形式的 Spring Boot 应用程序。 #### 修改 Host 设置以支持上下文路径 当希望 Tomcat 不直接加载特定的 Web 应用程序(即 WAR 文件),而是作为容器提供服务时,可以在 `$CATALINA_HOME/conf/server.xml` 文件内的 `<Engine>` 下找到对应的 `<Host>` 节点,并设置其 `autoDeploy="false"` 和 `deployOnStartup="false"` 属性[^1]: ```xml <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="false" deployOnStartup="false"> </Host> ``` 这会阻止自动扫描 webapps 目录下的任何新添加的应用程序或更新现有应用程序的行为。 #### 使用嵌入式 Tomcat 或者独立运行 jar 文件 对于现代开发框架如 Spring Boot,默认情况下创建的是可执行 JAR 文件而不是传统的 WAR 文件。这种方式下,内置了一个轻量级的 Servlet 容器实例(例如 Jetty, Undertow 或者 Tomcat)。因此,在这种场景里,无需将项目WAR 并放置到外部 Tomcat 的 webapp 文件夹中;相反地,只需简单地运行该 JAR 文件即可让应用正常工作[^3]: ```bash java -jar my-springboot-app.jar ``` 如果确实需要使用外部分离型 Tomcat 来管理多个不同版本的服务,则应该调整 POM 文件移除默认内嵌 Tomcat 插件,并指定 spring-boot-starter-tomcat 为 provided scope: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency> ``` 最后一步是在项目的根目录下创建名为 `context.xml` 的文件用于定义自定义参数和资源链接等配置项。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值