2010-12-17 37 views
2

在Linux上的Tomcat 5.5.27下(在生產環境下的CentOS和Ubuntu 10.04的開發環境下),我們正在經歷一些奇怪的webapp部署行爲。應用程序A和應用程序B幾乎完全相同(完全相同的庫,複製的Maven項目),但應用程序B的不同之處僅在於其JPA實體被註釋爲訪問同一模式中的不同表(JNDI數據庫引用是相同)。爲什麼Tomcat webapp在相同的Tomcat實例中啓動幾乎相同的應用程序時失敗?

當應用被部署到任何環境中,應用程序B就開始。但是:

  1. 從Tomcat管理控制檯手動啓動停滯的應用程序,工作正常(???)。
  2. 嘗試重新啓動Tomcat後,按字母順序排列的後來的應用無法啓動。點#1仍然從[仍待到開始]應用B的記錄,也沒有從Tomcat的「ca​​talina.out的」錯誤有效(???)
  3. 記錄配置(log4j的),但是,我們什麼也得不到日誌文件(注意:日誌記錄一旦應用程序啓動並運行)。

我已經做了相當徹底的信息搜索(Apache/Tomcat bugzilla,Google),但我沒有發現任何真正的用途。其他posts已經發現在服務器的'context.xml''Context'節點上使用antijarlocking和antiresourcelocking屬性,但也有人建議這在Linux下是不必要的/無效的(在這裏也沒有出現過) 。

任何想法?

乾杯

豐富

附:從Tomcat 5.5.x升級不是一種選擇,目前(IT支持等)。

回答

5

在tomcat上,spring應用程序有類似的行爲。 - 他們要求webAppRootKey對每個應用程序都是唯一的。 - 如果應用程序的行爲與您所描述的不同,那麼在Spring應用程序的情況下,請確保App-A具有其他webAppRootKey,然後是App-B。

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

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

+0

拉爾夫,我會看看這個,讓你知道我的身體情況如何。值得注意的是,你提到Spring是,這些是基於Spring的應用程序;-)。另外,感謝您的快速回復。 – 2010-12-17 15:07:08

+0

做什麼它說錫!是的,那是有效的。奇怪的是,我有一個模糊的重新選擇,我們已經在另一個項目上設置了這個webAppRootKey,在過去的4-5年中(真的;-))。再次感謝。 – 2010-12-17 15:38:33

相關問題