我有一个Java应用程序,我正在使用Tomcat进行部署,但我在这方面遇到了一些困难。
问题是,我的web应用程序必须与一些本地库(通过JNI)对话,而这些库不能很好地处理错误,所以如果我尝试启动Tomcat,而本地调用失败,Tomcat启动就会中途停止,而不会启动。
我想做的是让Tomcat在这个web应用程序启动时不要启动它,因为我将使用其他方法启动这个web应用程序,这将确保本地调用能够正常工作。具体来说,本机调用是要与另一个系统对话,该系统必须已经在运行,才能使本机调用成功。
我发现一件有趣的事情是,一旦Tomcat成功地重新加载应用程序,在本机库中运行失败只会导致上下文失败,Tomcat继续正常运行。
我已经在谷歌上搜索过并看到指向context.xml文件的指针,但我不清楚是否可以使用它来实现我的目标,因为Tomcat引用似乎没有列出在启动时停止自动加载上下文的任何属性。
发布于 2012-04-07 00:21:18
Tomcat 6在启动时部署应用程序的行为由deployOnStartup文件中的Host元素中的server.xml参数控制;
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true" deployOnStartup="false"
xmlValidation="false" xmlNamespaceAware="false"
deployIgnore=".svn">
</Host>但是,如果autoDeploy设置为"true“,tomcat还支持热部署位于appBase或conf/localhost/Catalina文件夹中的war和上下文文件,因此不清楚tomcat是否会看到这些现有的war文件并部署它们。因此,也可能需要设置autoDeploy="false"。在这种情况下,您需要使用tomcat管理器工具将您的webapp部署到正在运行的tomcat服务器上。
https://serverfault.com/questions/377407
复制相似问题