2016-11-14 67 views
1

我已經成功地部署了我在WebSphere Liberty配置文件(16.0.0.3)的應用程序,但是當我嘗試使用它,我得到以下異常:的MyFaces和WebSphere自由模式(ClassNotFoundException的)

java.lang.ClassNotFoundException: org.apache.myfaces.renderkit.html.HtmlFormRenderer 
    at com.ibm.ws.classloading.internal.AppClassLoader.findClassCommonLibraryClassLoaders(AppClassLoader.java:488) 
    at com.ibm.ws.classloading.internal.AppClassLoader.findClass(AppClassLoader.java:271) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at com.ibm.ws.classloading.internal.AppClassLoader.findOrDelegateLoadClass(AppClassLoader.java:466) 
    at com.ibm.ws.classloading.internal.AppClassLoader.loadClass(AppClassLoader.java:438) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Class.java:264) 
    at pt.sibs.epms.ecc.renderer.HtmlFormRenderer.getRenderer(HtmlFormRenderer.java:54) 

JSF 2.2在server.xml中啓用:

<feature>jsf-2.2</feature> 

和類中存在:

wlp/lib/com.ibm.ws.jsf.2.2_1.0.14.jar 

關於API類型可見ibilty,我的共享庫和應用程序都有spec,ibm-api,api,third-party

如果我嘗試配置MyFaces的另一個實現,我開始獲得ClassCastException

我需要做些什麼才能完成這項工作?

回答

1

jsf-2.2功能不會將MyFaces實現類作爲任何類型的api公開,這就是爲什麼嘗試執行Class.forName不起作用的原因。

+0

感謝您的回覆。這是否意味着我無法實現自己的渲染器? –

+0

對不起,我不太瞭解JSF能夠回答這個問題。我剛剛在這裏查看了文檔:http://www.ibm.com/support/knowledgecenter/SSAW57_liberty/com.ibm.websphere.wlp.nd.doc/ae/rwlp_feature_jsf-2.2.html – Alasdair

0

嗨,你應該能夠通過使用RendererWrapperRenderKitWrapper的組合來實現自己的渲染器。這些類允許您將專門的行爲添加到現有的Renderer和RenderKit實例。

+0

感謝您的鏈接,我我會看看是否可以讓它工作,但是我遇到了'org.apache.myfaces.application.ActionListenerImpl'的問題(儘管我可以拋棄這個問題)。 –

相關問題