转载 

tomcat控制应用启动顺序_tomcat运行顺序

分类:java,运维    210人阅读    IT小君  2023-06-18 18:44

题记:

spring boot 项目多个微服务war都丢在同一个tomcat下面,由于confing service 、eureka 等相互依赖关系所以需要 限制war 启动顺序,默认是按照字典序启动服务。于是有了如下需求

需求

tomcat下有两个应用 假设aa.war应用 和 bb.war应用
tomcat再无任何配置的情况下
默认会按文件名字典顺序启动,也就是 aa->bb 的启动顺序
如果aa.war应用依赖于bb.war应用,想按照 bb->aa 的启动顺序怎么办?

分析

tomcat的默认加载方式:
tomcat先加载 conf/server.xml配置文件下的Context元素的,然后是处理webapps下的war应用,接着是文件夹列表(appBase.list()))
假设server.xml中只配了一个Context

<Context docBase="cc" path="/cc"></Context>

webapps 下有
aa
bb.war
cc
dd (这个顺序是系统固定的,系统是按字典顺序排的)
那按上述分析启动顺序是 cc, bb, aa, dd

解决方案

按照以上分析 我们只需要在tomcat目录下conf/server.xml中配置context就可以解决了
在server.xml文件中host标签下配置aa.war和bb.war的context

<Context docBase="E:\apache-tomcat-7.0.94\webapps\bb.war" path="/bb"></Context>
<Context docBase="E:\apache-tomcat-7.0.94\webapps\aa.war" path="/aa"></Context>

转载于:https://blog.csdn.net/weixin_33805152/article/details/95601323

支付宝打赏 微信打赏

如果文章对你有帮助,欢迎点击上方按钮打赏作者

 工具推荐 更多»