1

myfaces 1.2 アプリケーションを Websphere 8.0 にデプロイしているときに、「java.lang.NoSuchMethodException: No suchaccessible method: addRenderKitClass() on object: org.apache.myfaces.config.impl.digester.elements.RenderKit」例外が発生しました。https://www.ibm.com/developerworks/community/forums/html/topic?id=77777777-0000-0000-0000-000014782514に似ているようです。

異なるjsfライブラリからロードされたRenderKitとDigesterFacesConfigUnmarshallerImplが原因のようです。「Verbose class loading」でサーバーを実行すると、次のことが確認されます。

me@mycomp:/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

その後

my@mycomp:/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 は可能なすべての場所からロードされます。

したがって、問題は、DigesterFacesConfigUnmarshallerImpl をカスタム jsf ライブラリからロードする方法です。

4

1 に答える 1