2013-04-23 312 views
1

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。

回答

-1

我剛剛遇到了同樣的問題。這似乎是由於WAR/EAR中的某些faces-config.xml文件不符合服務器預期的版本(WAS 8爲2.0)所導致的。

在我們的場景中,這不應該是一個問題,因爲我們將我們自己的JSF版本與WAR捆綁在一起,並且首先將EAR和WAR中包含的EAR和WAR的類加載器策略設置爲本地類加載器, JSF版本是1.2。但是,從faces-config.xml文件的頭部刪除所有版本和DTD信息可以解決我們的問題。

相關問題