2013-11-22 8 views
5

Ich versuche, eine Anwendung auf Websphere 8.5.5 bereitzustellen Ich habe eine gemeinsam genutzte Bibliothek für erstellt Websphere, die 2.2 Jars und andere Abhängigkeiten wie commons-collections enthält.
Ich habe auch den Klassenlader meiner Anwendung als PARENT_LAST gemacht.
Wenn ich die Anwendung bereitstellen, bekomme ich diese Ausnahme:IllegalArgumentException: com.ibm.ws.jsf.config.annotation.WASMyFacesAnnotationProvider ist kein org.apache.myfaces.spi.AnnotationProvider

An error occured while initializing MyFaces: Class com.ibm.ws.jsf.config.annotation.WASMyFacesAnnotationProvider is no org.apache.myfaces.spi.AnnotationProvider 
java.lang.IllegalArgumentException: Class com.ibm.ws.jsf.config.annotation.WASMyFacesAnnotationProvider is no org.apache.myfaces.spi.AnnotationProvider 
at org.apache.myfaces.shared.util.ClassUtils.buildApplicationObject(ClassUtils.java:557) 
at org.apache.myfaces.shared.util.ClassUtils.buildApplicationObject(ClassUtils.java:524) 
+0

Das erwähnte Verfahren funktioniert gut mit Mojarra 2.2. Ich verwende eine gemeinsame Bibliothek, die nur enthält: jsf-api-2.2.4 und jsf-impl-2.2.4 –

+0

Wie fügen Sie die gemeinsame Bibliothek an? Hängen Sie es an die Serverinstanz oder an die Anwendung an? – Isaac

+0

Umgebung/Gemeinsame Bibliotheken/Neu –

Antwort

1

ich eine neuere Version von MyFaces auf WAR am Laufen 8.5.5 war auf der Suche, und lief in ein ähnliches Problem. Es scheint ein Konflikt zwischen dem Code zu sein, den IBM geschrieben hat, um seine eingebettete Version von MyFaces zu unterstützen, und einer Anwendung oder einer gemeinsam genutzten Bibliothek, die MyFaces bereitgestellt hat.

IBM bietet eine Möglichkeit, dieses Problem zu umgehen. Als WAS 8.0 ausgeliefert wurde, wurde eine Funktion zur Auswahl von "SunRI1.2" oder "MyFaces" als vom Server bereitgestellter JSF bereitgestellt. Wenn Sie den Standardwert auf "SunRI1.2" festlegen, werden die vom Server bereitgestellten MyFaces aus dem Klassenpfad entfernt und dem Entwickler ermöglicht, eigene Dateien bereitzustellen.

  1. Wählen Sie eine beliebige Anwendung
  2. Klicken Sie JSP und JSF Optionen
  3. Im JSF Implementierung Abschnitt, der Dropdown-Liste ändern SunRI1.2
  4. Click OK
  5. Konfiguration speichern und Server neu starten
+0

Gibt es eine Möglichkeit, dies im Deployment-Deskriptor zu setzen? also müssen wir es nach der Tat nicht ändern? und möglicherweise haben sie es rückgängig gemacht? – VeenarM

+0

Obwohl es durch die Anwendungseinstellungen verfügbar gemacht wird, lebt es tatsächlich auf Serverebene. Jede Anwendung auf demselben Server ist betroffen. – rdean400

+0

Yup hat das hinterher herausgefunden :) Oh, gut, wir fordern unsere eigene JVM für die Produktion - denn Leute können sich aufregen, wenn wir sie zwingen, dort eigene und umgekehrte Loader zu verwenden, denn wir sind :) – VeenarM