2.20. CXF
Apache CXF を使用して SOAP WebServices を公開するか、CXF WS クライアントを使用して外部 WebServices に接続します。
2.20.1. 含まれるもの リンクのコピーリンクがクリップボードにコピーされました!
このエンドポイントには、次の 2 つの URI 形式があります。
- cxf:bean:cxfEndpoint
- cxfEndpoint は、Spring Bean レジストリー内の Bean を参照する Bean ID を表します。
- cxf://someAddress
- someAddress は、CXF エンドポイントのアドレスを指定します。
使用方法と設定の詳細は、CXF コンポーネント を参照してください。
2.20.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.20.3. Usage リンクのコピーリンクがクリップボードにコピーされました!
2.20.3.1. 全般 リンクのコピーリンクがクリップボードにコピーされました!
camel-quarkus-cxf-soap は、CXF Extensions for Quarkus プロジェクト (quarkus-cxf) のエクステンションを使用します。つまり、quarkus-cxf は、サポート対象のユースケースおよび WS 仕様のセットを提供します。
サポート対象のユースケースおよび WS 仕様の詳細は、Quarkus CXF Reference を参照してください。
2.20.3.2. 依存関係の管理 リンクのコピーリンクがクリップボードにコピーされました!
Camel Extensions for Quarkus は、CXF および quarkus-cxf バージョンを 管理 します。これらのプロジェクトと互換性があるバージョンを選択する必要はありません。
2.20.3.3. クライアント リンクのコピーリンクがクリップボードにコピーされました!
camel-quarkus-cxf-soap (追加の依存関係は不要) を使用すると、CXF クライアントを Camel ルートでプロデューサーとして使用できます。
CalculatorService は以下のようになります。
JAX-WS アノテーションが必要です。Simple CXF フロントエンドはサポートされていません。ネイティブモードで適切に機能させるには、複雑なパラメータータイプに JAXB アノテーションが必要です。
このサービスエンドポイントインターフェイスを実装する 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 クライアント の章を参照してください。
2.20.3.4. Server リンクのコピーリンクがクリップボードにコピーされました!
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 つのサービスにそれぞれアクセスできます。
上記の URL に ?wsdl を追加することで、WSDL にアクセスできます。
他のエクステンションが HTTP エンドポイントを公開しないと 100% 確信できない限り、アプリケーションで quarkus.cxf.path = / を使用しないでください。
CEQ 2.13.3 以降では、quarkus.cxf.path のデフォルト値は / です。デフォルト値は、他のエクステンションが HTTP エンドポイントを公開しないようにします。
これは RESTEasy、Vert.x、SmallRy Health などに影響します。これらを使用する場合は、quarkus.cxf.path を、/services などの特定のパスに設定する必要があります。これは、Camel Extensions for Quarkus 3.0.0 / quarkus-cxf 2.0.0 で始まるデフォルトです。
quarkus-cxf は、SOAP エンドポイントを公開する代替方法をサポートします。詳細は、quarkus-cxf ユーザーガイドの SOAP Services の章を参照してください。
2.20.3.5. 要求および応答のロギング リンクのコピーリンクがクリップボードにコピーされました!
org.apache.cxf.ext.logging.LoggingFeature を使用して、クライアントとサーバーの SOAP メッセージの詳細ロギングを有効にできます。
io.quarkiverse.cxf:quarkus-cxf-rt-features-logging は、camel-quarkus-cxf-soap 依存関係として org.apache.cxf.ext.logging.LoggingFeature のサポートを提供します。
アプリケーションに明示的に追加する必要はありません。
2.20.3.6. WS 仕様 リンクのコピーリンクがクリップボードにコピーされました!
サポートされる WS 仕様の範囲は、Quarkus CXF プロジェクトによって提供されます。
サポート対象のユースケースおよび WS 仕様の詳細は、Quarkus CXF Reference を参照してください。
アプリケーションで他の WS 仕様が必要な場合は、それに対応する Quarkus CXF 依存関係を追加する必要があります。
Camel Extensions for Quarkus では、サポートレベル Stable でリストされているすべてのエクステンションをサポートします。
さまざまな WS 仕様を実装するアプリケーションの実行可能な例として、統合テストを使用できます。
2.20.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