Unk*_*own 3 migration jsf nosuchmethoderror jsf-2.2
迁移到JSF 2.2后,我得到以下异常.具体来说,我正在将Mojarra 2.1.17升级到Mojarra 2.2.8.
java.lang.NoSuchMethodError: javax.faces.component.UIComponent.getPassThroughAttributes(Z)Ljava/util/Map;
at org.primefaces.renderkit.RendererUtils.renderPassThroughAttributes(RendererUtils.java:79)
at org.primefaces.renderkit.CoreRenderer.renderDynamicPassThruAttributes(CoreRenderer.java:119)
at org.primefaces.renderkit.CoreRenderer.renderPassThruAttributes(CoreRenderer.java:114)
at org.primefaces.renderkit.BodyRenderer.encodeBegin(BodyRenderer.java:44)
at javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:823)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1611)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1616)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:399)
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)
at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:273)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:313)
Run Code Online (Sandbox Code Playgroud)
当我检查UIComponent内部时jsf-api-2.2.8.jar,我可以看到有一种方法Map<String, Object> getPassThroughAttributes(boolean create);.
这是怎么造成的,我该如何解决?
该方法是在JSF 2.2 中引入的.当webapp的运行时类路径被多个不同版本化的JSF API库污染时,就会发生这个问题.换句话说,在运行时类路径中的某处仍然存在JSF 2.0或2.1 API.
这表明您尝试通过手动将其捆绑在webapp中并将其部署到已经捆绑JSF的Java EE容器(例如WildFly,JBoss AS,GlassFish,WebLogic,WebSphere等)来升级JSF.您的堆栈跟踪太短,以便能够确认,但您的问题历史证实您正在使用WebLogic.
为了在WebLogic中正确升级Mojarra,您实际上应该替换/wlserver/modules文件夹中的JSF JAR .
如果您实际上使用的是一个没有捆绑JSF的准系统servletcontainer,例如Tomcat,那么您需要验证/WEB-INF/lib(或者Maven情况下的pom文件)是否在JSF API中没有重复项.最常见的首发球员的错误javaee-api.jar也在那里.这应该被删除(或设置为provided).另请参阅ao 如何在Eclipse项目中导入javax.servlet API?
| 归档时间: |
|
| 查看次数: |
5262 次 |
| 最近记录: |