0

最近、WAS6 から WAS7 に移行しました。WAS6 では問題なく動作していたアプリケーションの 1 つが、次のエラーで WAS7 では動作しません。

java.lang.NoSuchMethodError: com/sun/faces/util/Util.verifyFactoriesAndInitDefaultRenderKit(Ljavax/servlet/ServletContext;)V
at com.ibm.faces.context.MultipartFacesContextFactoryImpl.getFacesContext(MultipartFacesContextFactoryImpl.java:73)  

そのエラーを出しているコードは

FacesContextFactory contextFactory  = (FacesContextFactory)
             FactoryFinder.getFactory(FactoryFinder.FACES_CONTEXT_FACTORY);
         facesContext = contextFactory.getFacesContext(
             request.getSession().getServletContext(), request, response, lifecycle);

WAS6 と WAS7 の contextfactory でアプリをデバッグしているときに、次の情報を見つけました: com.ibm.faces.context.MultipartFacesContextFactoryImpl - JSF-IBM.jar - WAS7 contextfactory: com.icesoft.faces.context.FacesContextFactoryImpl - icefaces.jar - WAS6

共有ライブラリを作成してそれをEARに関連付け、クラスローダースキームを「親が最後」から「親が最初」に変更するなど、いくつかの提案を試みました。

しかし、私が何をしても、WAS7 では、contextFactory の値として MultipartFacesContextFactoryImpl を取得しています。

1.7.2 を 1.8 バージョンの icefaces.jar と icefaces-comps.jar に置き換えようとしました。しかし、それでも同じ結果です。

助けてください。詳細が必要な場合はお知らせください。

4

1 に答える 1

0

WAS6 は Java 5 をネイティブとして使用し、WAS7 は Java 6 を使用している可能性があります。クラスを Java 6 で再コンパイルしてみてください。

于 2011-07-14T13:30:49.887 に答える