【发布时间】:2018-04-17 14:15:43
【问题描述】:
我创建了一个包含 xhtml 页面和托管 bean 的 JSF war 文件。它的 lib 文件夹包含以下 jars:
myfaces-api-2.2.13.jarmyfaces-impl-2.2.13.jarcommons-xxxxxx.jarjstl-1.2.jar
当我在 Webshpere 8.5.5 上部署它时,它运行良好。
我需要将 primefaces 添加到我的项目中。在war lib文件夹下添加primefaces jar文件(primefaces-6.0.jar)并将其部署到Websphere上后,它给了我这个错误:
java.lang.NoSuchMethodError:
javax/faces/component/UIComponent.getPassThroughAttributes(Z)Ljava/util/Map;
注意:在 Eclipse 的 Tomcat v7.0 上进行测试时,它运行良好(使用 primefaces)。
我通过从 Eclipse 导出战争来生成战争。
【问题讨论】:
-
这个必须和容器提供的JSF版本有关。可能您的 primefaces 期望 JSF 的版本比 WAS 提供给您的版本更新。尝试在你的存档中包含一个 JSF 实现(确保你的类加载器没有首先设置为父级)
-
PrimeFaces 6 应该在 JSF 2.0-2.2 上运行良好,并且该方法来自 JSF 2.2,所以这很奇怪......确定页面中没有“尝试”用户通过属性?是不是部署错误?比总是发布堆栈跟踪..
标签: java deployment primefaces websphere war