Got“java.lang.NoSuchMethodException:No such accessible method:addRenderKitClass( )在将myfaces 1.2应用程序部署到websphere 8.0时出现异常:org.apache.myfaces.config.impl.digester.elements.RenderKit“异常。似乎与https://www.ibm.com/developerworks/community/forums/html/topic?id=77777777-0000-0000-0000-000014782514类似。java.lang.NoSuchMethodException:No such accessible method:addRenderKitClass()on object:org.apache.myfaces.config.impl.digester.elements.RenderKit
它看起来像是从不同的jsf库加载的RenderKit和DigesterFacesConfigUnmarshallerImpl引起的。运行带有“详细类装入”服务器证实了这一点:
[email protected]:/opt/IBM/WebSphere/AppServer/profiles/PROF1/logs/server1# grep org.apache.myfaces.config.impl.digester.elements.RenderKit native_stderr.log
class load: org.apache.myfaces.config.impl.digester.elements.RenderKit from: file:/opt/IBM/WebSphere/AppServer/plugins/com.ibm.ws.jsf.myfaces.jar
class load: org.apache.myfaces.config.impl.digester.elements.RenderKit from: file:/opt/IBM/WebSphere/AppServer/profiles/PROF1/installedApps/myNode03Cell/mnu-ear.ear/myapp.war/WEB-INF/lib/myfaces-impl-1.2.5.jar
class load: org.apache.myfaces.config.impl.digester.elements.RenderKit from: file:/opt/IBM/WebSphere/AppServer/profiles/PROF1/installedApps/myNode03Cell/mnu-ear.ear/myapp.war/WEB-INF/lib/myfaces-impl-1.2.5.jar
class load: org.apache.myfaces.config.impl.digester.elements.RenderKit from: file:/opt/IBM/WebSphere/AppServer/profiles/PROF1/installedApps/myNode03Cell/mnu-ear.ear/myapp.war/WEB-INF/lib/myfaces-impl-1.2.5.jar
然后
[email protected]:/opt/IBM/WebSphere/AppServer/profiles/PROF1/logs/server1# grep DigesterFacesConfigUnmarshallerImpl native_stderr.log
class load: org.apache.myfaces.config.impl.digester.DigesterFacesConfigUnmarshallerImpl from: file:/opt/IBM/WebSphere/AppServer/plugins/com.ibm.ws.jsf.myfaces.jar
因此DigesterFacesConfigUnmarshallerImpl只是从IBM的JSF而RendererKit从所有可能的位置加载的加载。
所以问题是如何从自定义jsf库中加载DigesterFacesConfigUnmarshallerImpl。