2

我们在 Linux 上的 Tomcat 5.5.27 下(在生产中的 CentOS 和开发中的 Ubuntu 10.04 上)遇到了稍微奇怪的 webapp 部署行为。

应用程序 A 和应用程序 B 几乎相同(完全相同的库,复制的 Maven 项目),应用程序 B 的不同之处仅在于其 JPA 实体被注释为访问同一架构中的不同表(JNDI 数据库引用相同)。

当应用程序部署到任一环境中时,应用程序 B 将不会启动。然而:

  1. 从 Tomcat 管理控制台手动启动停止的应用程序可以正常工作 (???)。
  2. 在尝试重新启动 Tomcat 后,按字母顺序排列的应用程序无法启动。第 1 点仍然有效 (???)
  3. 配置了日志记录(log4j),但是,我们从 [尚未启动的] 应用程序 B 的日志记录中没有得到任何信息,也没有从 Tomcat 的“catalina.out”日志文件中得到任何错误(注意,一旦应用程序启动并运行,日志记录就会工作) .

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

有任何想法吗?

干杯

富有的

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

4

1 回答 1

5

与tomcat 上的spring 应用程序有类似的行为。-- 他们要求 webAppRootKey 对于每个应用程序都是唯一的。- 如果应用程序的行为不像您描述的那样,那么对于 Spring 应用程序,请确保 App-A 有另一个 webAppRootKey 然后是 App-B。

<context-param>
    <param-name>webAppRootKey</param-name>
    <param-value>myRootKey</param-value>
</context-param>

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

于 2010-12-17T13:46:07.877 回答