migration - java.lang.NoSuchMethodError: javax.faces.component.UIComponent.getPassThroughAttributes(Z)Ljava/util/Map; after migrating to JSF 2.2 -
migration - java.lang.NoSuchMethodError: javax.faces.component.UIComponent.getPassThroughAttributes(Z)Ljava/util/Map; after migrating to JSF 2.2 -
i getting below exception after migrating jsf 2.2. specifically, i'm upgrading mojarra 2.1.17 mojarra 2.2.8.
java.lang.nosuchmethoderror: javax.faces.component.uicomponent.getpassthroughattributes(z)ljava/util/map; @ org.primefaces.renderkit.rendererutils.renderpassthroughattributes(rendererutils.java:79) @ org.primefaces.renderkit.corerenderer.renderdynamicpassthruattributes(corerenderer.java:119) @ org.primefaces.renderkit.corerenderer.renderpassthruattributes(corerenderer.java:114) @ org.primefaces.renderkit.bodyrenderer.encodebegin(bodyrenderer.java:44) @ javax.faces.component.uicomponentbase.encodebegin(uicomponentbase.java:823) @ javax.faces.component.uicomponent.encodeall(uicomponent.java:1611) @ javax.faces.component.uicomponent.encodeall(uicomponent.java:1616) @ com.sun.faces.application.view.faceletviewhandlingstrategy.renderview(faceletviewhandlingstrategy.java:399) @ com.sun.faces.application.view.multiviewhandler.renderview(multiviewhandler.java:131) @ javax.faces.application.viewhandlerwrapper.renderview(viewhandlerwrapper.java:273) @ com.sun.faces.lifecycle.renderresponsephase.execute(renderresponsephase.java:121) @ com.sun.faces.lifecycle.phase.dophase(phase.java:101) @ com.sun.faces.lifecycle.lifecycleimpl.render(lifecycleimpl.java:139) @ javax.faces.webapp.facesservlet.service(facesservlet.java:313)
when check uicomponent
within jsf-api-2.2.8.jar
, can see there method map<string, object> getpassthroughattributes(boolean create);
.
how caused , how can solve it?
that method introduced in jsf 2.2. problem happen when webapp's runtime classpath polluted multiple different versioned jsf api libraries. in other words, you've still jsf 2.0 or 2.1 api somewhere in runtime classpath.
this suggests you're trying upgrade jsf manually bundling in webapp , deploying java ee container bundles jsf out box, such wildfly, jboss as, glassfish, weblogic, websphere, etc. stacktrace short in order able confirm that, question history confirms you're using weblogic.
in order upgrade mojarra in weblogic, should replacing jsf jar(s) in /wlserver/modules
folder.
in case you're using barebones servletcontainer doesn't bundle jsf out box, such tomcat, you'd need verify if /web-inf/lib
(or pom file in case of maven) free of duplicates in jsf api. mutual starter's error having javaee-api.jar
in there too. should removed (or set provided
). see a.o. how import javax.servlet api in eclipse project?
jsf migration jsf-2.2 nosuchmethoderror
Comments
Post a Comment