2009-11-11 7 views

Antwort

0

Websphere wird mit JSF 1.2.something geliefert und es wird standardmäßig geladen. Um eine andere JSF-Bibliothek (oder eine andere von WS zur Verfügung gestellte Bibliothek, wie z. B. Commons-Logging) zu verwenden, müssen Sie die Priorität des Classloaders ändern. Sie nennen es ‚Eltern„letzt Ihre Libs dann den WS-Versionen laden Bedeutung.

+0

Ja, aber die letzte Option ist keine Option, wenn Sie mehrere Apps verwenden, die ältere Version verwenden – Shahzeb

13

Die WebSphere Infocenter zeigt an, dass der richtige Weg zu einer alternativen JSF Implementierung zu ändern, sind ein WebSphere Shared Library mit der isolierten Classloader-Option erstellen aktiviert.

Alle Module, die JSF brauchen 2 würden mit der neuen Shared Library in Verbindung gebracht werden, und dann wäre die Anwendung mit JSF 2 anstelle von JSF 1.2 starten.

Es ist auch necessary to have fix pack 7.0.0.19 or later installed.

+0

Sie sprechen über Informationen, die auf der IBM Infocenter-Website bereitgestellt werden, Sie stellen jedoch keine Verknüpfung bereit. Warum? –

+6

http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=/com.ibm.websphere.nd.multiplatform.doc/info/ae/ae/tweb_jsf.html – Rick

+0

Vielleicht ich mache etwas falsch, aber das hat nicht für mich funktioniert. Wenn ich diesen Anweisungen folge, versucht es immer noch, die SUN JSF-1.2-Referenzimplementierung zu laden. –

0

ich habe mit zu kämpfen löse das tagelang. So habe ich es gelöst.

Verwenden Sie die folgende Bibliothek: javax.faces-2.1.7.jar

Wenn Sie auf PrimeFaces sind 3.1: primefaces-3.1.1.jar

Application Server-Instanz: Klasse Loading - Eltern Last

Enterprise Application-Instanz (Krieg Module): Klasse Loading - Eltern Last

Stellen Sie sicher, dass alle Servlet Container-Bibliotheken, wie sie von Tomcat benötigt werden, entfernt werden.

+0

Haben Sie die GlassFish-Implementierung verwendet? Die Suche nach Namen von Jar schlägt dies vor. War es mit WebSphere 7.0? –

0

Schritt für Schritt Einstellung MyFaces 2.0 auf WebSphere Application Server v7 als gemeinsam genutzte Bibliothek als IBM empfiehlt: http://wasbehindtheglass.blogspot.co.uk/

I 2.0.4 Ähnliche Schritte für Majorra/JSF angewandt habe und erstellt eine gemeinsame Bibliothek mit nur JSF-api .jar und jsf-impl.jar. Wie @Ian McLaird gesagt hat, sind WAS 7.0.0.19 und JSF 2.0.4 erforderlich. JSF 2.1.x erfordert Servlets 3 und wird nicht unterstützt durch WAS7

+0

Wenn Sie RAD verwenden und nicht möchten, dass Sie bei jeder Bereitstellung der Anwendung die gemeinsam genutzte Bibliothek aus der WAS7 - Verwaltungskonsole auswählen, können Sie einen Deployment - Deskriptor (namens deployment.xml) in Ihr Projekt einfügen, der die gemeinsame Bibliothek.Siehe den Link für Details: http://www.webspheretools.com/sites/webspheretools.nsf/docs/How%20to%20set%20the%20class%20loading%20policy%20to%20parent%20last%20using%20configuration%20files% 20shipped% 20within% 20the% 20EAR – iyildiz

+0

Haben Sie versucht, mit MyFaces 2.1 oder Sie schreiben, dass es funktioniert nicht basierend auf anderen Quellen? Wenn ja, könnten Sie es posten? –

0

Meine Erfahrung:

-> WAS 7.0.0.11 auf Windows

-> javax.faces-2.0.11.jar in WEB- INF/lib meiner War Anwendung

-> geteilt wurde librairies mit javax.faces-2.0.11.jar mit isolierten Class Loader

-> WURDE librairies Gemeinsamer im Zusammenhang mit meinem War App

-> keine Änderung auf Class Loader zum Beispiel und die Anwendung (PARENT_FIRST)

Mit dieser conf (siehe oben) die Anwendung arbeitet mit JSF 2.0 Geldbuße WAR 7. wenn ich den javax.faces-2.0.11.jar löschen Aus meiner War-App funktioniert es nicht.

0

Folge für mich

    arbeitete
  • eine gemeinsame Bibliothek erstellen und Ihre JSF 2.0 Gläser in sie.
  • Fügen Sie auch EL 2.2 API und EL-Impl 2.2 Gläser hinzu, da JSF 2.0 dies implizit benötigt.
  • Fügen Sie diese Bibliothek zu Ihrer Anwendung hinzu, und legen Sie die Klassenladevoreinstellung als PARENT_LAST fest.

ändern web.xml wie folgt

<context-param> 
       <param-name>com.sun.faces.expressionFactory</param-name> 
       <param-value>com.sun.el.ExpressionFactoryImpl</param-value> 
    </context-param> 
    <listener> 
     <listener-class>com.sun.faces.config.ConfigureListener</listener-class> 
    </listener> 

Thats it.

0

Hallo, ich könnte meine Website mit diesen Bibliotheken

librerias

Konfiguration in web.xml meinem Projekt

<context-param> 
    <param-name>com.sun.faces.expressionFactory</param-name> 
    <param-value>com.sun.el.ExpressionFactoryImpl</param-value> 
</context-param> 

Konfiguration in Websphere laufen zu meinen Bibliotheken (Parent Last)

laden

Grüße

0

Vielen Dank O Leute!

Es funktionierte mit einer neueren Version von javax.faces. Siehe die Maven-Abhängigkeiten:

<dependency> 
     <groupId>org.glassfish</groupId> 
     <artifactId>javax.faces</artifactId> 
     <version>2.1.29-08</version> 
    </dependency> 
    <dependency> 
     <groupId>javax.el</groupId> 
     <artifactId>el-api</artifactId> 
     <version>2.2</version> 
    </dependency> 
    <dependency> 
     <groupId>com.sun.el</groupId> 
     <artifactId>el-impl</artifactId> 
     <version>2.2</version> 
    </dependency> 

Vergessen Sie nicht, die folgenden in Ihrem web.xml hinzuzufügen:

<context-param> 
    <param-name>com.sun.faces.expressionFactory</param-name> 
    <param-value>com.sun.el.ExpressionFactoryImpl</param-value> 
</context-param> 

Und schließlich zu ändern, um die WebSphere Class Loader, um die Anwendung und das Modul an den (parent letzte) Einstellungen: https://www.ibm.com/support/knowledgecenter/SSAW57_7.0.0/com.ibm.websphere.nd.doc/info/ae/ae/urun_rclassloader_inst.html

Grüße