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。