当一个几乎完全相同的应用程序在同一个Tomcat实例中启动时,为什么Tomcat webapp失败?

Big*_*ich 2 java spring tomcat tomcat5.5

我们在Linux上的Tomcat 5.5.27下遇到了一些奇怪的webapp部署行为(在生产中的CentOS和用于开发的Ubuntu 10.04上).

App A和app B几乎完全相同(完全相同的库,复制的Maven项目),App B的不同之处仅在于它的JPA实体被注释为访问同一模式中的不同表(JNDI数据库引用是相同的).

当应用程序部署到任一环境时,应用程序B将无法启动.然而:

  1. 从Tomcat管理控制台手动启动停滞的应用程序,工作正常(???).
  2. 在尝试重新启动Tomcat之后,按字母顺序排列的应用程序无法启动.第1点仍然有效(???)
  3. 记录配置(log4j的),但是,我们从[仍待到开始]应用B的记录什么都没有,也没有从Tomcat的"catalina.out的"日志文件中的错误(NB.记录工作,一旦应用程序启动运行) .

我已经对信息进行了相当彻底的搜索(Apache/Tomcat bugzilla,Google),但我发现没有任何实际用途.其他帖子已经在服务器的'context.xml''Context'节点上看到了antijarlocking和antiresourcelocking属性的使用,但也有人建议这在Linux下是不必要的/无效的(在这里似乎也没有用) .

有任何想法吗?

干杯

丰富

PS目前不支持从Tomcat 5.5.x升级(IT支持等).

Ral*_*lph 5

tomcat上的spring应用程序有类似的行为. - 它们要求webAppRootKey对于每个应用程序都是唯一的. - 如果不是应用程序的行为与您描述的相同,那么在Spring应用程序的情况下,请确保App-A具有其他webAppRootKey,然后是App-B.

<context-param>
    <param-name>webAppRootKey</param-name>
    <param-value>myRootKey</param-value>
</context-param>
Run Code Online (Sandbox Code Playgroud)

@参见http://groups.google.com/group/riotfamily/browse_thread/thread/9a0edf69575d3ab6?pli=1