最近、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 に置き換えようとしました。しかし、それでも同じ結果です。
助けてください。詳細が必要な場合はお知らせください。