異なるOSGiバンドルにJSFカスタムコンポーネントを含めることはできますか?

StackOverflow https://stackoverflow.com/questions/203629

  •  03-07-2019
  •  | 
  •  

質問

OSGiとJSFを一緒に使用した人はいますか?

JSFは、クラスローダーマジックを使用してカスタムコンポーネントを見つけるためです。チュートリアル(エンファシスマイニング)から:

  

この構成ファイルは終了します   META-INF / faces-config.xmlである   これを表す.jarファイル   成分。 JSFはそのようなものを探します   各.jarファイルのファイル名   実行時にロードされる(   .warファイル用のWEB-INF / libディレクトリ)   そして、それらのそれぞれを使用して   構成。このようにして、複数の   コンポーネントの.jarファイルを結合できます   1つのWebアプリケーションに、そしてすべての   各.jarに記述されているコンポーネント   アプリケーションで利用可能になります。

JSFカスタムコンポーネントをOSGiバンドルとして(つまり、カスタムコンポーネントがJSFランタイムとは異なるOSGiバンドルに含まれているように)、JSFが実行時にこれらを見つけることができるようにしたい

誰かが似たようなことをしましたか?

役に立ちましたか?

解決

次の方法で可能です:

  • Web osgiバンドルには「Require-Bundle」が必要です。コンポーネントを含むバンドルを指すMANIFEST.MFで
  • コンポーネントjarには、META-INFおよびJSF関連ファイル(およびコンポーネントの標準パッケージ)があるMETA-INFのサブパッケージを含むExport-Packageが必要です。例:Export-Package:META-INF、META-INF.resources ...

maven-bundleプラグインを使用する場合は、META-INFおよびサブパッケージをエクスポートするためにアポストロフィと同等のものを使用する必要があります。例:

<Export-Package>
  a.b.c,
  '=META-INF',
  '=META-INF.resources',
  ...
</Export-Package>

JSF Spec 2.2では、JSF-OSGI関係に関する部分があるかもしれません。進行状況を確認するには、 http://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-942

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top