2016-11-14 9 views
1

Ich habe erfolgreich meine App auf WebSphere Freiheit Profile (16.0.0.3) eingesetzt, aber wenn ich versuche, es zu benutzen, erhalte ich die folgende Ausnahme:MyFaces und WebSphere Liberty-Profil (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 ist in server.xml aktiviert:

<feature>jsf-2.2</feature> 

Und die Klasse gibt es in:

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

in Bezug auf API-Typ vis ibilty, meine gemeinsame Bibliothek und Anwendung haben spec,ibm-api,api,third-party. Wenn ich versuche, eine andere Implementierung von MyFaces zu konfigurieren, beginne ich, ClassCastException zu erhalten.

Was muss ich ändern, damit dies funktioniert?

Antwort

1

Die Funktion jsf-2.2 stellt die MyFaces-Implementierungsklassen nicht als API irgendeiner Art dar, weshalb der Versuch, Class.forName auszuführen, nicht funktioniert.

+0

danke für die Antwort. Bedeutet das, dass ich meinen eigenen Renderer nicht implementieren kann? –

+0

Es tut mir leid, dass ich nicht genug über JSF weiß, um diese Frage beantworten zu können. Ich habe gerade das Dokument hier überprüft: http://www.ibm.com/support/knowledgecenter/SSAW57_liberty/com.ibm.websphere.wlp.nd.doc/ae/rwlp_feature_jsf-2.2.html – Alasdair

0

Hallo, Sie sollten Ihre eigenen Renderer mit einer Kombination aus und implementieren können. Mit diesen Klassen können Sie vorhandenen Renderer- und RenderKit-Instanzen spezielles Verhalten hinzufügen.

+0

Vielen Dank für die Links, ich Ich werde einen Blick darauf werfen und sehen, ob ich es zum Laufen bringen kann, aber ich habe das gleiche Problem mit 'org.apache.myfaces.application.ActionListenerImpl' (obwohl ich das hier ablegen kann). –

Verwandte Themen