2013-04-23 6 views
1

"java.lang.NoSuchMethodException : 접근 할 수없는 메소드가 없습니다 : addRenderKitClass) on objects : org.apache.myfaces.config.impl.digester.elements.RenderKit "mysphere8.0에 myfaces 1.2 애플리케이션을 배포하는 동안 예외가 발생했습니다. https://www.ibm.com/developerworks/community/forums/html/topic?id=77777777-0000-0000-0000-000014782514과 (과) 비슷한 것으로 보입니다.java.lang.NoSuchMethodException : 접근 할 수있는 메소드 없음 : 객체의 addRenderKitClass() : org.apache.myfaces.config.impl.digester.elements.RenderKit

RenderKit과 DigesterFacesConfigUnmarshallerImpl이 다른 jsf 라이브러리에서로드 된 것으로 보입니다. "자세한 정보 클래스로드"로 서버를 실행하면 확인이 :

[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 

및 RendererKit 가능한 모든 위치에서로드되는 동안 다음

[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에서만로드됩니다.

그래서 DigesterFacesConfigUnmarshallerImpl을 사용자 정의 jsf lib에서로드하는 방법에 대해 질문합니다.

답변

-1

나는이 동일한 문제를 다뤘다. 이것은 WAR/EAR의 일부 faces-config.xml 파일이 서버가 기대하는 버전 (WAS 8 기준으로 2.0)과 일치하지 않는 것으로 인해 발생합니다.

시나리오에서 우리는 JSF의 자체 버전을 WAR에 번들하고 해당 EAR에 포함 된 EAR ​​및 WAR에 대한 클래스 로더 정책을 먼저 로컬 클래스 로더로 설정하고 번들로 제공하므로 문제가되지 않아야합니다 (SHOULD). JSF 버전은 1.2입니다. 그러나 faces-config.xml 파일의 헤더에서 모든 버전 및 DTD 정보를 제거하면 문제가 해결됩니다.