我正在尝试在Websphere 8.5.5上部署应用程序
我为Websphere创建了一个共享库,其中包括myfaces 2.2 jar和其他依赖项,例如commons-collections。
我还将应用程序的类加载器设置为PARENT_LAST。
部署应用程序时,出现以下异常:

An error occured while initializing MyFaces: Class com.ibm.ws.jsf.config.annotation.WASMyFacesAnnotationProvider is no org.apache.myfaces.spi.AnnotationProvider
java.lang.IllegalArgumentException: Class com.ibm.ws.jsf.config.annotation.WASMyFacesAnnotationProvider is no org.apache.myfaces.spi.AnnotationProvider
at org.apache.myfaces.shared.util.ClassUtils.buildApplicationObject(ClassUtils.java:557)
at org.apache.myfaces.shared.util.ClassUtils.buildApplicationObject(ClassUtils.java:524)

最佳答案

我当时正在考虑在WAS 8.5.5上运行较新版本的MyFaces,但遇到了类似的问题。 IBM为支持其MyFaces嵌入式版本编写的代码与应用程序或共享库提供的MyFaces之间似乎存在冲突。

IBM提供了一种解决此问题的方法。当WAS 8.0出厂时,它提供了允许选择“SunRI1.2”或“MyFaces”作为服务器提供的JSF的功能。将默认值设置为“SunRI1.2”会从类路径中删除服务器提供的MyFaces,并允许开发人员提供自己的。

  • 选择任何应用程序
  • 单击 JSP和JSF选项
  • JSF实现部分中,将下拉列表更改为 SunRI1.2
  • 单击确定
  • 保存配置并重新启动服务器
  • 10-06 13:35