需要通过重命名可部署的 war 文件来决定 tomcat 部署顺序

Need to dictate tomcat deployment order by renaming deployable war files

提问人:Ashar 提问时间:10/2/2023 最后编辑:Ashar 更新时间:10/2/2023 访问量:44

问:

我有以下战争文件可供部署

usapp.war
Phonix.war
VelotownAPI.war

我希望部署顺序如下:

Phonix.war -- First
usapp.war -- Second
VelotownAPI.war -- Third

有许多解决方案可用于设置部署顺序。但是,我正在寻找的唯一解决方案是重命名部署文件,因为文件名是按部署顺序考虑的。

因此,我重命名了部署,如下所示:

a_Phonix.war
b_usapp.war
c_VelotownAPI.war

但是,一旦 tomcat 服务器启动,它就不会按所需的顺序爆炸/部署上述重命名的战争。

我也尝试了下面的重命名,但它也没有帮助我获得所需的顺序。

1_Phonix.war
2_usapp.war
3_VelotownAPI.war

注意:

如果我像下面这样重命名战争,那么部署顺序就会起作用!

我也尝试了下面的重命名,但它也没有帮助我获得所需的顺序。

1.war ---> Phonix.war
2.war ---> usapp.war
3.war ---> VelotownAPI.war

您能否建议如何最好地重命名我的战争文件,以便 Tomcat 按所需顺序部署它们?

Java Tomcat 部署 Web 应用程序 序列

评论

1赞 Pino 10/2/2023
什么版本的 Tomcat?为什么你认为名称决定了部署顺序?
0赞 Ashar 10/2/2023
@Pino如果我重命名为下面,那么部署顺序---> Tomcat 版本是1.war ---> Phonix.war 2.war ---> usapp.war 3.war ---> VelotownAPI.war9.0.56
1赞 nitind 10/3/2023
致力于解决...什么?

答:

1赞 Olaf Kock 10/2/2023 #1

为 tomcat 指定的唯一部署顺序如下:

  1. 将首先部署任何上下文描述符。
  2. 然后,将部署未被任何上下文描述符引用的分解 Web 应用程序。如果他们有关联的 .WAR 文件,并且它比分解的 Web 应用程序更新,则将删除分解的目录,并将从 重新部署 Web 应用程序。战争
  3. .将部署 WAR 文件

依赖其他任何东西就是依赖未指定的当前行为。相反,您应该为应用程序配备设备,以便在它们所依赖的其他应用程序不可用时正常处理。(无论如何,您都应该这样做,并在这种情况下测试他们的行为)

即使你找到了神奇的名字,或者你假设上下文描述符是按一定的顺序阅读的:它可能不是你期望的顺序(例如,它可能是按日期排列的,有时它可能与字母顺序相关 - 直到下一次更新)

接受未指定的部署顺序(也由基础规范指定)并为此做好准备。

或者(尽管仍然不建议)可以编写部署脚本。例如,启动一个空的雄猫,并通过管理器应用程序及其 API 远程控制它 - 当然,在那里,您可以实现您喜欢的任何订单。

评论

0赞 Ashar 10/2/2023
考虑到我们正在动态设置基础设施/实例,我正在考虑您的答案中的选项 1 和 2 不存在(无关紧要)。对于选项是我尝试使用 tomcat 考虑的名称首选项的地方。3. .WAR files will be deployed
1赞 Olaf Kock 10/2/2023
我理解。无论你发现什么,它都可能在未来的任何时候破裂。除了我上面给出的列表之外,您必须接受该顺序未指定,并为此做好计划。除非你让WAR文件一个接一个地出现 - 例如,通过像最后一段这样的机制,或者只是通过文件复制。