JSF 2.0 は WebSphere Application Server バージョン 7.x で使用できますか?
もしそうなら、どのように?
JSF 2.0 は WebSphere Application Server バージョン 7.x で使用できますか?
もしそうなら、どのように?
WebSphere Infocenterは、代替JSF実装に変更する正しい方法は、分離されたクラスローダーオプションを有効にしてWebSphere共有ライブラリーを作成することであることを示しています。
JSF 2を必要とするモジュールはすべて新しい共有ライブラリに関連付けられ、アプリケーションはJSF1.2ではなくJSF2で起動します。
私はこれを何日も解決するのに苦労してきました。これが私がそれを解決した方法です。
次のライブラリを使用します:javax.faces-2.1.7.jar
PrimeFaces 3.1を使用している場合:primefaces-3.1.1.jar
アプリケーションサーバーインスタンス:クラスの読み込み-親の最後
エンタープライズアプリケーションインスタンス(warモジュール):クラスの読み込み-親の最後
Tomcatで必要なものなど、すべてのサーブレットコンテナライブラリを必ず削除してください。
私の経験:
-> Windows 上の WAS 7.0.0.11
-> 私の War アプリケーションの WEB-INF/lib にある javax.faces-2.0.11.jar
-> 分離クラスローダーを使用した javax.faces-2.0.11.jar を使用した WAS 共有ライブラリ
-> 私の戦争アプリに関連付けられた WAS 共有ライブラリ
-> インスタンスとアプリケーションの Class Loader に変更なし (PARENT_FIRST)
この conf (上記) を使用すると、アプリケーションは WAS 7 上の JSF 2.0 で正常に動作します。War アプリから javax.faces-2.0.11.jar を削除すると、動作しません。
IBM が推奨するように、WebSphere Application Server v7 で MyFaces 2.0 を共有ライブラリーとして段階的に設定します: http://wasbehindtheglass.blogspot.co.uk/
Majorra/JSF 2.0.4 にも同様の手順を適用し、jsf-api.jar と jsf-impl.jar のみを使用して共有ライブラリを作成しました。@Ian McLaird が WAS 7.0.0.19 と JSF 2.0.4 が必要であると言ったように。JSF 2.1.x には Servlet 3 が必要であり、WAS7 ではサポートされていません
Websphere には JSF 1.2.something が同梱されており、デフォルトでそれをロードします。別の JSF ライブラリ (または commons-logging などの WS が提供するその他のライブラリ) を使用するには、クラスローダーが場所に優先順位を付ける方法を変更する必要があります。彼らはそれを「親が最後」と呼び、ライブラリをロードしてからWSバージョンをロードすることを意味します。