2.27. CXF
Apache CXF を使用して SOAP WebServices を公開するか、CXF WS クライアントを使用して外部 WebServices に接続します。
2.27.1. 含まれるもの リンクのコピーリンクがクリップボードにコピーされました!
-
CXF コンポーネント、URI 構文:
cxf:beanId:address
使用方法と設定の詳細は、上記リンクを参照してください。
2.27.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.27.3. 使用方法 リンクのコピーリンクがクリップボードにコピーされました!
2.27.3.1. 全般 リンクのコピーリンクがクリップボードにコピーされました!
camel-quarkus-cxf-soap は、CXF Extensions for Quarkus プロジェクト (quarkus-cxf) のエクステンションを使用します。これは、サポートされるユースケースと WS 仕様のセットの大部分が quarkus-cxf によって提供されることを意味します。
サポート対象のユースケースおよび WS 仕様の詳細は、Quarkus CXF の Reference を参照してください。
2.27.3.2. 依存関係の管理 リンクのコピーリンクがクリップボードにコピーされました!
CXF および quarkus-cxf バージョンは {project-name} によって 管理 されます。これらのプロジェクトと互換性があるバージョンを選択する必要はありません。
2.27.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.27.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 つのサービスにそれぞれアクセスできます。
WSDL には、上記の URL に ?wsdl を追加することでアクセスできます。
他のエクステンションが HTTP エンドポイントを公開しないと 100% 確信できない限り、アプリケーションで quarkus.cxf.path = / を使用しないでください。
quarkus-cxf 2.0.0 より前 (つまり {project-name} 3.0.0 より前) では、quarkus.cxf.path のデフォルト値は / でした。このデフォルト値は、他の Quarkus エクステンションがさらなる HTTP エンドポイントの公開を阻止していたため、変更されました。とりわけ、RESTEasy、Vert.x、SmallRye Health ( health エンドポイントは公開されていません) がこの影響を受けていました。
quarkus-cxf は、SOAP エンドポイントを公開する代替方法をサポートします。詳細は、quarkus-cxf ユーザーガイドの SOAP Services の章を参照してください。
2.27.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.27.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.27.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
2.27.4. 追加の Camel Quarkus 設定 リンクのコピーリンクがクリップボードにコピーされました!
| 設定プロパティー | 型 | デフォルト |
|---|---|---|
|
CXF サービスインターフェイスを適切に機能させるには、ビルド時にいくつかの補助クラス (リクエストラッパーやレスポンスラッパーなど) を生成する必要があります。Camel Quarkus では、
|
|
|
ビルド時に修正される設定プロパティー。その他の設定プロパティーはすべて、ランタイム時にオーバーライドが可能です。