-->

启动Tomcat的webapps在一个确定的顺序(Start webapps in tomcat i

2019-07-20 09:45发布

我有2种的webapps:

Web应用程序2从取决于Web应用程序1

如果Web应用程序1没有运行,Web应用程序2失败

我可以在Tomcat中定义,我总是想的webapp 2之前的webapp 1点开始?

Answer 1:

根据Apache的维基(在http://wiki.apache.org/tomcat/FAQ/Miscellaneous#Q27 ):

没有预期的启动顺序。 无论是Servlet规范,也不Tomcat的定义之一。 你可以不依赖于任何特定的顺序启动应用程序。



Answer 2:

这是事实,Tomcat不提供任何办法执行部署顺序。

Tomcat的部署按照以下顺序的webapps:

1.Any上下文描述符将会首先部署。

没有任何上下文描述符引用2.Exploded Web应用程序将被部署。 如果他们在的appBase相关的.WAR文件,它比展开的Web应用程序更新,展开的目录将被删除,web应用程序将从.WAR重新部署

3.WAR文件将被部署

这里是一个建议的解决方案:

如果你想指定部署顺序再定义一个上下文在$ CATALINA_BASE / conf目录/ [引擎] / [主机名] /MyApp.xml您的Web应用程序

/通过执行文件listFiles()返回由散列值(取决于操作系统)排序的文件阵列的Tomcat扫描$ CATALINA_BASE / CONF / [引擎] / [主机名]。

您可以使用下面的代码,以检查那些为了web应用将被部署

档案文件=新的文件( “/选择/ tomcat的/ conf目录/卡塔利娜/本地主机”); 文件[]文件= file.listFiles(); 对于(文件f:文件){的System.out.println( “文件名:” + f.getName()); 文强



Answer 3:

Liferay的似乎的方式,使这成为可能已经覆盖hostconfig中。 其基本思想是扩大hostconfig中,然后覆盖要么deployApps或单个方法deployDescriptors,depoyWars和deployDirectories到你想要的方式应用进行排序。 然后通过添加属性hostConfigClass到Host元素修改的Tomcat的conf / server.xml中。

见http://www.javadocs.com/docs/com.liferay.portal/support-tomcat/6.2.0/com/liferay/support/tomcat/startup/PortalHostConfig.java了解详情。



文章来源: Start webapps in tomcat in a determinate order