2012-09-28 97 views
0

我在struts.properties中有struts.devMode = true。這將導致每次重新加載資源包。但每次嘗試重新加載時,都會拋出異常。我的應用程序正在運行在websphere 7上。任何幫助都將被應用。 com.opensymphony.xwork2.util.logging.commons.CommonsLogger error Could not reload resource bundles java.lang.NoSuchFieldException: cacheList在Websphere中重新裝入struts2中的資源包

回答

2

您無法在開發模式和Websphere中使用Struts 2。互聯網上沒有太多的信息(in French),但是我可以用我有限的法語知識理解的是,您必須將服務器設置爲生產設置。

我的意思是,你的struts.xml必須這樣做在WebSphere Struts2的工作:

<struts> 
    <constant name="struts.devMode" value="false" /> 
    <constant name="struts.i18n.reload" value="false" /> 
    <constant name="struts.configuration.xml.reload" value="false" /> 
    ... 
</struts> 

的原因,爲什麼會這樣是不是很清楚。該博客解釋說,也許是由IBM實施不同的JVM實現,也可能與ResourceBundle類的實現有所不同,該類沒有私有字段cacheList,然後在重新加載國際化標籤時引發錯誤。

0

後續的解決方案中的Tomcat 7和WebSphere Application Server 7

LocalizedTextUtil.reset(); 
ResourceBundle.clearCache(LocalizedTextUtil.class.getClassLoader()); 

工作對我來說這將清除資源包緩存。

* devModei18n.reload必須是false

問候,

費利佩