2.24. CXF
Apache CXF を使用して SOAP WebServices を公開するか、CXF WS クライアントを使用して外部 WebServices に接続します。
2.24.1. 含まれるもの リンクのコピーリンクがクリップボードにコピーされました!
-
CXF コンポーネント、URI 構文:
cxf:beanId:address
使用方法と設定の詳細は、上記リンクを参照してください。
2.24.2. Maven コーディネート リンクのコピーリンクがクリップボードにコピーされました!
code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成
または、既存のプロジェクトに座標を追加します。
<dependency> <groupId>org.apache.camel.quarkus</groupId> <artifactId>camel-quarkus-cxf-soap</artifactId> </dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-cxf-soap</artifactId>
</dependency>
2.24.3. 使用方法 リンクのコピーリンクがクリップボードにコピーされました!
2.24.3.1. 全般 リンクのコピーリンクがクリップボードにコピーされました!
camel-quarkus-cxf-soap
は、CXF Extensions for Quarkus プロジェクト (quarkus-cxf
) のエクステンションを使用します。
これは、サポートされるユースケースと WS 仕様のセットの大部分が quarkus-cxf
によって提供されることを意味します。
サポート対象のユースケースおよび WS 仕様の詳細は、Quarkus CXF の Reference を参照してください。
2.24.3.2. 依存関係の管理 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Apache Camel for Quarkus は、CXF および quarkus-cxf
のバージョンを 管理 します。これらのプロジェクトと互換性があるバージョンを選択する必要はありません。
2.24.3.3. クライアント リンクのコピーリンクがクリップボードにコピーされました!
camel-quarkus-cxf-soap
(追加の依存関係は不要) を使用すると、CXF クライアントを Camel ルートでプロデューサーとして使用できます。
CalculatorService
は以下のようになります。
このサービスエンドポイントインターフェイスを実装する quay.io/l2x6/calculator-ws:1.2 コンテナーに対して、このクライアントアプリケーションをテストできます。
docker run -p 8082:8080 quay.io/l2x6/calculator-ws:1.2
$ docker run -p 8082:8080 quay.io/l2x6/calculator-ws:1.2
quarkus-cxf
は、@io.quarkiverse.cxf.annotation.CXFClient
アノテーションを使用する SOAP クライアントの注入 をサポートします。詳細は、quarkus-cxf
ユーザーガイドの SOAP Clients の章を参照してください。
2.24.3.4. サーバー リンクのコピーリンクがクリップボードにコピーされました!
camel-quarkus-cxf-soap
を使用すると、SOAP エンドポイントを Camel ルートのコンシューマーとして公開できます。このユースケースには、追加の依存関係は必要ありません。
これら 2 つのサービスが提供されるパスは、たとえば application.properties
で設定できる quarkus.cxf.path
設定プロパティー の値によって異なります。
application.properties
quarkus.cxf.path = /soap-services
quarkus.cxf.path = /soap-services
この設定を適用すると、http://localhost:8080/soap-services/hello-bean
および http://localhost:8080/soap-services/hello-inline
で、2 つのサービスにそれぞれアクセスできます。
WSDL には、上記の URL に ?wsdl
を追加することでアクセスできます。
他のエクステンションが HTTP エンドポイントを公開しないと 100% 確信できない限り、アプリケーションで quarkus.cxf.path = /
を使用しないでください。
quarkus-cxf
2.0.0 より前 (つまり、Red Hat build of Apache Camel for Quarkus 3.0.0 より前)、quarkus.cxf.path
のデフォルト値は /
でした。このデフォルト値は、他の Quarkus エクステンションがさらなる HTTP エンドポイントの公開を阻止していたため、変更されました。とりわけ、RESTEasy、Vert.x、SmallRye Health ( health エンドポイントは公開されていません) がこの影響を受けていました。
quarkus-cxf
は、SOAP エンドポイントを公開する代替方法をサポートします。詳細は、quarkus-cxf
ユーザーガイドの SOAP Services の章を参照してください。
2.24.3.5. 要求および応答のロギング リンクのコピーリンクがクリップボードにコピーされました!
org.apache.cxf.ext.logging.LoggingFeature
を使用して、クライアントとサーバーの両方の SOAP メッセージの詳細ロギングを有効にできます。
org.apache.cxf.ext.logging.LoggingFeature
のサポートは、camel-quarkus-cxf-soap
依存関係として io.quarkiverse.cxf:quarkus-cxf-rt-features-logging
によって提供されます。アプリケーションに明示的に追加する必要はありません。
2.24.3.6. WS 仕様 リンクのコピーリンクがクリップボードにコピーされました!
サポートされる WS 仕様の範囲は、Quarkus CXF プロジェクトによって提供されます。
camel-quarkus-cxf-soap
は、io.quarkiverse.cxf:quarkus-cxf
エクステンションを介して、以下の仕様のみをカバーします。
- JAX-WS
- JAXB
- WS-Addressing
- WS-Policy
- MTOM
アプリケーションが WS-Security や WS-Trust などの他の WS 仕様を必要とする場合は、それをカバーする Quarkus CXF 依存関係を追加する必要があります。どの WS 仕様がどの Quarkus CXF エクステンションでカバーされているかを確認するには、Quarkus CXF の Reference ページを参照してください。
2.24.3.7. ツール リンクのコピーリンクがクリップボードにコピーされました!
quarkus-cxf
は、以下の 2 つの CXF ツールをラップします。
-
wsdl2Java
- WSDL からサービスクラスを生成する 場合 -
java2ws
- Java クラスから WSDL を生成する 場合
wsdl2Java
が適切に機能するためには、アプリケーションは io.quarkiverse.cxf:quarkus-cxf
に直接依存する必要があります。
wsdlvalidator
はサポート対象外ですが、application.properties
で以下の設定を指定し、wsdl2Java
を使用して WSDL を検証できます。
application.properties
quarkus.cxf.codegen.wsdl2java.additional-params = -validate
quarkus.cxf.codegen.wsdl2java.additional-params = -validate