1

CDIを利用してJavaWebアプリケーションを作成しています。My Warには、BeanソースであるさまざまなJarファイル(META-INF / beans.xmlファイルを含む)が含まれています。私のBeanは、JBossなどのJava EEコンテナ内で実行すると自動的に検出されます(現在、JBoss AS 7.1.1を使用しています)。これだけはうまく機能しています。

理想的には、構成可能な場所(つまり、システムプロパティで指定された場所)に格納されているJarファイルからクラスをロードできるようにすることで、Webアプリケーションを拡張できるようにしたいと考えています。ClassLoaderを使用してクラスとリソースを解決できるため、これも問題ありません。私が欠けているのは、CDIにこれらの外部JarファイルをスキャンしてそれらのBeanを含める機能です。

これにより、アプリケーションで新しいRESTリソースを含むプラグイン機能をホストできるようになります。これらの外部Jarファイルに含まれるクラスとリソースを取得するためにアプリケーションを再起動する必要があるかどうかは気になりません。

これを達成する方法がわかりません。これは、このような環境で試みるべきことでもありますか?

4

1 に答える 1

1

これを達成する方法がわかりません。

実際には 2 つのオプションがあります。

  1. CDI 拡張メカニズムを使用して、起動時に Bean / bean-archives を操作し、必要な方法でそれらを変更します。ドキュメントで提供されている例を見てください。これで開始できるはずです。
  2. 実行時BeanManagerを操作します。この同様の質問を見てください。
于 2012-07-10T13:46:49.753 に答える