2013-03-22 9 views
8

私は、 faces-2.1.14.jarをjsf-api-2.2.0-m05.jarからjsf-impl-2.2.0-m05.jar mavenを使わずにjsfプロジェクトを作成しようとしていて、見たサンプルを探していますさまざまなチュートリアルの異なるjar依存関係coreservletsのチュートリアルではjavax.faces-2.1.14.jarが使用され、別のサイトから見たもう1つのチュートリアルでは、2つのjarファイルjsf-api-2.2.0-m05.jarとjsf-impl-2.2.0-m05が使用されています。 jar IDは、これらの2つの依存関係の違いを知りたいです。 おかげさまでありがとうございました。jsf-api-2.2.0-m05.jarとjsf-impl-2.2.0-m05.jarのjavax.faces-2.1.14.jarの違いは何ですか

答えて

19

jsf-api-xxx.jarには、パッケージjavaパッケージjavax.facesのクラスが含まれています。このjarのクラスは、JSF仕様で定義された標準APIの実装です。 jsf-impl-xxx.jarには、javaパッケージcom.sun.facesのクラスが含まれています。javaパッケージの示すとおり、Sun独自のJSF実装クラスです。

javax.faces-xxx.jarは、実際には前の2つのjarファイルをまとめてマージします。 Mavenリポジトリには、org.glassfish groupIdの下にあります。 javax.facescom.sun.faces javaパッケージがあります。

あなたの開発には何を使用しますか?実際には両方を使用できます。しかし、コンパイルクラスパスにのみjsf-api-xxx.jarを含めることをお勧めします。したがって、あなた自身のアプリケーションはcom.sun.facesパッケージの下のクラスに依存せず、移植性を他のJSF実装に実現します。 GlassFishなどのアプリケーションを使用している場合、コンテナは実行時にJSF実装を提供しているはずです。上記のJSF jarファイルは、サーバーがすべてのファイルを提供するので、warファイルまたはearファイルと一緒にパッケージ化しないでください。 TomcatなどのデフォルトでJSF実装に付属していないコンテナを使用する場合は、WEB-INF/libjavax.faces-xxx.jarまたは(jsf-api-xxx.jar + jsf-impl-xxx.jar)をパッケージ化する必要があります。

+1

これは私が探していた種類の説明と比較でした。また、ユースケース、特に最後の段落はまさに私を悩ましていた質問です。ありがとう! – royjavelosa

+0

@royjavelosaうれしい – Lan

0

これらは異なるバージョンです。

  • javax.faces-2.1.14.jarは2.1.14
  • JSF-API-2.2.0-m05.jarとJSF-IMPL-2.2.0-m05.jar用複合JARファイルであります2.2.0-m05用の個別のJARです。

バージョン間の相違点はリリースノートに記載されていますが、2.2と2.1はそれほど違いはありません。

関連する問題