3.6. Web サービスアプリケーションのモジュール依存関係の設定

JBoss EAP Web サービスは、org.jboss.as.webservices.*org.jboss.ws.* モジュールを含むモジュールおよびライブラリーのセットとして提供されます。これらのモジュールを変更する必要はありません。

JBoss EAP では、対応するモジュールに依存関係を明示的に設定しない限り、直接 JBossWS 実装クラスを使用することはできません。デプロイメントに追加するモジュール依存関係を宣言します。

JBossWS API は、webservices サブシステムが利用可能になるたびにデフォルトで利用可能です。これらのモジュールの明示的な依存関係宣言を作成せずに使用できます。

3.6.1. MANIFEST.MF の使用

デプロイメントの依存関係を設定するには、MANIFEST.MF ファイルに追加します。例を以下に示します。

Manifest-Version: 1.0
Dependencies: org.jboss.ws.cxf.jbossws-cxf-client services export,foo.bar

この MANIFEST.MF ファイルは、org.jboss.ws.cxf.jbossws-cxf-client および foo.bar モジュールの依存関係を宣言します。export および services オプションを含む MANIFEST.MF ファイルで依存関係を宣言する方法は、JBoss EAP Development GuideAdd a Dependency Configuration to MANIFEST.MF を参照してください。

Apache CXF エンドポイントやハンドラーなどのエンドポイントおよびハンドラーでアノテーションを使用する場合は、マニフェストファイルに適切なモジュール依存関係を追加します。この手順を省略すると、アノテーションは選択されず、完全に無視されます。

3.6.1.1. JAXB の使用

インコンテナーを実行しているクライアントまたはエンドポイントで JAXB コンテキストを正常に直接使用するには、JAXB 実装を設定します。たとえば、以下の依存関係を設定します。

Dependencies: com.sun.xml.bind services export

3.6.1.2. Apache CXF の使用

Apache CXF API および実装クラスを使用するには、org.apache.cxf (API) モジュールまたは org.apache.cxf.impl (実装) モジュールに依存関係を追加します。例を以下に示します。

Dependencies: org.apache.cxf services

依存関係は、JBossWS のカスタマイズや追加の拡張がない純粋な Apache CXF です。そのため、クライアント側の集約モジュールは、必要なすべての Web サービスの依存関係で利用できます。

3.6.1.3. クライアント側の Web サービスアグリゲーションモジュール

Web サービスの機能すべてを使用する場合は、便利なクライアントモジュールへの依存関係を設定できます。例を以下に示します。

Dependencies: org.jboss.ws.cxf.jbossws-cxf-client services

JBossWS 固有のクラスをロードしてすべての JBossWS 機能を有効にするには、services オプションが必要です。org.jboss.ws.cxf.jbossws-cxf-client および org.apache.cxf モジュールの依存関係を宣言する場合は、services オプションがほぼ常に必要になります。このオプションは、多くの JBossWS コンポーネントおよび Apache CXF Bus 拡張の接続に使用される Service API でのクラスのロードに影響します。

3.6.1.4. アノテーションのスキャン

アプリケーションサーバーは、ユーザーデプロイメントで JAX-WS エンドポイントを検出するためにアノテーションインデックスを使用します。web.xml 記述子で参照しているなど、異なるモジュールに属するクラスの Web サービスエンドポイントを宣言する場合は、annotations タイプ依存関係を使用します。この依存関係がないと、エンドポイントは webservices サブシステムのアノテーション付きクラスとして表示されないため、無視されます。

Dependencies: my.org annotations

3.6.2. jboss-deployment-structure.xml の使用

状況によっては、MANIFEST.MF ファイルでモジュールの依存関係を設定する便利なアプローチは機能しない場合があります。たとえば、MANIFEST.MF ファイルに依存関係を設定しても、指定のモジュール依存関係から特定のリソースをインポートおよびエクスポートしても機能しません。これらのシナリオでは、jboss-deployment-structure.xml 記述子ファイルをデプロイメントに追加し、そのデプロイメントにモジュール依存関係を設定します。

jboss-deployment-structure.xml の使用に関する詳細は、JBoss EAP Development Guidejboss-deployment-structure.xml への依存関係設定の追加 を参照してください。