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

4

2 に答える 2

2

devMode と Websphere で Struts 2 を使用することはできません。インターネット上 (フランス語) には多くの情報がありませんが、私の限られたフランス語の知識で理解できることは、サーバーを実動設定で配置する必要があるということです。

つまり、struts.xmlStruts2 を Websphere で動作させるには、次のようにする必要があります。

<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 実装のためのものであり、プライベート フィールドcacheListを持たず、i18n ラベルをリロードするとエラーが発生する ResourceBundle クラスの実装が異なる可能性があると説明しています。

于 2012-09-28T22:44:20.327 に答える
0

次のソリューションは、Tomcat 7 および WebSphere Application Server 7 で機能しました。

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

これにより、ResourceBundle キャッシュがクリアされます。

*devModei18n.reloadある必要がありますfalse

よろしく、

フェリペ

于 2014-03-24T04:47:53.297 に答える