【问题标题】:ICEFaces 1.7.2 and Websphere Application Server 7ICEFaces 1.7.2 和 Websphere Application Server 7
【发布时间】:2011-06-20 18:59:26
【问题描述】:

我们最近从 WAS6 迁移到 WAS7。我们的一个应用程序在 WAS6 中运行良好,但在 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 相关联,并将类加载器方案从“Parent Last”更改为“Parent First”。

但无论我做什么,在 WAS7 中,我都会将 MultipartFacesContextFactoryImpl 作为 contextFactory 的值。

我尝试用 1.8 版本的 icefaces.jar 和 icefaces-comps.jar 替换 1.7.2。但结果还是一样。

请帮忙。如果您需要更多详细信息,请告诉我。

【问题讨论】:

    标签: java icefaces websphere-7


    【解决方案1】:

    可能是 WAS6 使用 Java 5 作为本机,而 WAS7 使用 Java 6。尝试使用 Java 6 重新编译您的类。

    【讨论】: