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 Guide の Add 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 Guide の jboss-deployment-structure.xml への依存関係設定の追加 を参照してください。