0

データへのオプションの SOAP インターフェース (一連の EJB として実装) を持つ Web アプリケーションがあります。メイン アプリケーションと SOAP インターフェイスは分離され、データベース アクセス コードのみを共有していましたが、最近、1 つのアプリケーションとして統合されました (SOAP インターフェイスは、メイン アプリケーションの依存関係に追加された JAR としてパッケージ化されました)。どちらも JBoss サーバーでホストされています。

ソリューションは機能しますが、このアプリケーションではモジュラー プラグイン インターフェイスを使用しており、Maven を使用してプラグインを見つけ、アプリのユーザー インターフェイスから特定の機能のオンとオフを切り替えることができます。プラグインは、アプリケーションのデフォルト クラス ローダーを親として を使用してロードされURLClassLoader、 にマッピングされた汎用ページ ディスパッチャー サーブレットに登録されます*.page

<!-- from web.xml -->
<servlet-mapping>
  <servlet-name>dispatcer</servlet-name>
  <url-pattern>*.page</url-pattern>
</servlet-mapping>

現在のソリューションでは、EJB は以下を使用して公開されていweb.xmlます。

<!-- the very same web.xml -->
<servlet>
  <display-name>BaseService</display-name>
  <servlet-name>BaseService</servlet-name>
  <servlet-class>ourapp.services.BaseService</servlet-class>
</servlet>
<servlet-mapping>
  <servlet-name>BaseService</servlet-name>
  <url-pattern>/services/Base/*</url-pattern>
</servlet-mapping>

もちろん、EJB が実行時にロードされる場合、事前に指定することはできないため、次のようになります。

JAR から EJB をロードし、実行時に Web サービスとして公開するにはどうすればよいですか?

4

2 に答える 2

1

Web アプリを EJB jar と WAR に分割し、デプロイ/再デプロイできます。次に、アプリで、特定のサービスが利用可能かどうかを確認できます。

JBoss AS 7 を使用している場合、Management API を利用してプラグイン EJB jar をデプロイ/アンデプロイできます。
ここを参照してください:

于 2012-07-04T14:20:24.000 に答える
1

EJB を動的にロードするための標準 API はありません (これを可能にするベンダー API については知りません)。一般に、EE デプロイメントは、アプリケーション サーバーがアプリケーションをイントロスペクトし、さまざまな準備と最適化を実行できるようにする事前パッケージングに重点を置いています。

于 2012-07-04T14:14:25.013 に答える