2

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

JSF はクラスローダー マジックを使用してカスタム コンポーネントを検索するためです。チュートリアルから(強調鉱山):

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

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

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

4

2 に答える 2

1

それがあなたの問題に正確に答えているかどうかはわかりませんが、Spring と osgiに関するこのスレッド、特に依存関係とクラスパスが MANIFEST.MF にバンドルされているこの特定の答えが興味深いことがわかりました。

そのスレッドは、OSGi™ サービス プラットフォーム用の Spring Dynamic Modules (DM) に関するチュートリアルの更新にもつながります。これも興味深いかもしれません。

于 2008-10-15T03:58:02.290 に答える
1

次の方法で可能です。

  • Web osgi バンドルには、コンポーネントを含むバンドルを指す MANIFEST.MF に「Require-Bundle」が必要です。
  • コンポーネント jar には、META-INF を含む Export-Package と、JSF 関連ファイル (そしてもちろんコンポーネントの標準パッケージ) がある META-INF のサブパッケージが必要です。例: 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を参照してください。

于 2011-10-18T21:03:30.693 に答える