2009-08-13 17 views
1

我獲得兩個不同的struts2 web應用到tomcat中一起啓動的問題。但是,當獨立放置在tomcat的webapps文件夾中時,每個webapps都能正確啓動。兩個struts2的web應用無法啓動在一起

我得到catalina.out中以下日誌 -

嚴重:錯誤filterStart 2009年8月13日下午3點17分45秒開始org.apache.catalina.core.StandardContext嚴重 :上下文[/管理]啓動失敗由於先前的錯誤

環境 - Java1.6,的Tomcat6,Struts2.1.6,FC10

WebApps的是 「admin」 和 「用戶」。這兩個webapps分別在其WEB-INF/lib目錄中包含struts2 jar。

web.xml中包含兩個webapps-

<filter> 
    <filter-name>struts2</filter-name> 
    <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> 
</filter> 

<filter-mapping> 
    <filter-name>struts2</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 

的點以下需要注意的是永遠的「admin」的Web應用程序失敗並出現上述錯誤加載。如果我從webapps文件夾中刪除「user」webapp,「admin」webapp就會出現。

我也曾在web.xml-觀察到的一個件事WRT Struts2的過濾器。如果我刪除的web.xml Struts2的過濾器在Web應用程序的一個,無論是web應用啓動時不日誌中的任何錯誤(當然我的將無法在刪除過濾器的webapp中使用struts)。

我也曾嘗試Struts2的罐子從個人的webapps移動到tomcat lib和刪除它們,但存在同樣的問題..

任何想法是什麼原因造成這個問題?

更新:這個奇怪的正常工作在Ubuntu操作系統。但問題仍然存在於FC10和OpenSolaris上。

+0

你有更多一點的日誌記錄信息,最好在DEBUG級或類似的東西?這個問題看起來有點像類路徑問題,或者如果你使用這個問題,也許會出現log4j問題,但是從這個上下文中不可能知道。 – extraneon 2009-08-13 10:50:45

+0

感謝您的回覆。我已經啓用了Struts2調試日誌,並沒有任何有用的信息。現在我已經啓用了tomcat調試日誌,看看它是否給了我一些有用的信息。 是的,我在這兩個web應用程序中使用log4j。你能否詳細說明爲什麼你猜測它可能是log4j問題? – Keshav 2009-08-13 11:52:05

+0

你的日誌文件還有其他東西嗎?有時候,問題可能與啓動之前拋出的錯誤有關。我們有幾個Struts 2應用程序,每個實例超過3個tomcat實例約8個,並且它們都工作正常。嘗試解決一些問題,併發布結果。 – Allan 2009-08-13 13:01:28

回答

0

非常感謝alzoid,extraneon和Peter。

我忽略了上來對localhost..log文件例外。我想我已經重定向所有的支柱記錄到一個不同的日誌文件,但忽略了提的是在log4j屬性文件中OpenSymphony的包。

回到原來的問題 - xerces-impl jar和屬於struts2的其他jar文件存在類加載器問題。所以,當我刪除從WEB-INF/lib目錄了Xerces-IMPL罐子在這兩個應用程序,它開始工作得很好!

1

我不得不使用Spring和在web.xml中使用這個監聽器類有類似的問題:

org.springframework.web.util.Log4jConfigListener

見春Log4jWebConfigurer的文檔,它說你需要獨特的「Web應用程序根」資源中,每個web應用程序定義的,所以我不得不在每個web.xml中這樣的部分:

<!-- used by Log4jConfigListener --> 
<context-param> 
    <param-name>webAppRootKey</param-name> 
    <param-value>myappname.root</param-value> 
</context-param> 

您使用的春天嗎?如果不希望這會給你一些線索,我不太瞭解Struts2,也許它有類似的東西。讓我知道它是怎麼回事!

+0

感謝您的回覆。我沒有使用Spring框架。但是,你可能會指出我正確的方向--log4j。我甚至嘗試從這兩個Web應用程序中刪除log4j.properties和log4j jar以消除等式中的log4j,但結果與之前一樣。它不起作用。 – Keshav 2009-08-13 11:55:05

0

在同一臺服務器上啓動兩個struts2 Maven應用程序時,我們遇到了同樣的問題。該xerces LIB是問題,所以我們做了添加在pom.xml依賴xalan,一切運行良好:

<dependency> 
     <groupId>xalan</groupId> 
     <artifactId>xalan</artifactId> 
     <version>2.7.1</version> 
     <type>jar</type> 
     <scope>compile</scope> 
    </dependency>