Red Hat build of Apache Camel for Quarkus のリリースノート
Red Hat build of Apache Camel for Quarkus のリリースノート
概要
はじめに
Red Hat build of Apache Camel ドキュメントに関するフィードバック
エラーを報告したり、ドキュメントの改善を提案したりするには、Red Hat Jira アカウントにログインし、課題を送信してください。Red Hat Jira アカウントをお持ちでない場合は、アカウントを作成するように求められます。
手順
- チケットを作成するには、チケットの作成 のリンクをクリックします。
- Summary に課題の簡単な説明を入力します。
- Description に課題や機能拡張の詳細な説明を入力します。問題があるドキュメントのセクションへの URL も記載してください。
- Submit をクリックすると、課題が作成され、適切なドキュメントチームに転送されます。
第1章 Red Hat build of Apache Camel for Quarkus 3.20 / 3.20.1 SP1 のリリースノート
1.1. Red Hat build of Apache Camel for Quarkus の機能
- 高速起動と低 RSS メモリー
- Quarkus の最適化されたビルドタイムおよび事前 (AOT: Ahead-of-Time) コンパイラー機能を使用すると、ビルド時に Camel アプリケーションを事前に設定できるため、起動時間を短縮できます。
- アプリケーションジェネレーター
- Quarkus アプリケーションジェネレーター を使用して、アプリケーションをブートストラップし、エクステンションエコシステムを検出します。
- 高度な設定が可能
Red Hat build of Apache Camel for Quarkus アプリケーションの重要な側面はすべて、CDI (Contexts and Dependency Injection) または設定プロパティーを使用してプログラム的に設定できます。デフォルトでは、CamelContext が設定され、自動的に開始されます。
アプリケーションのブートストラップおよび設定のさまざまな方法に関する詳細は、プロパティーファイルを使用した Quarkus アプリケーションの設定 ガイドを参照してください。
- 既存の Quarkus エクステンションとの統合
- Red Hat build of Apache Camel for Quarkus は、ネイティブサポートと設定オプションを継承する Camel コンポーネントにより使用されるライブラリーとフレームワークのエクステンションを提供します。
1.2. サポートされるプラットフォーム、設定、データベース、およびエクステンション
Red Hat build of Apache Camel for Quarkus バージョン 3.20 でサポートされているプラットフォーム、構成、およびデータベースは、カスタマーポータルの サポートされる構成 ページを参照してください (ログインが必要です)。
Red Hat Red Hat build of Apache Camel for Quarkus エクステンションのリストと、各エクステンションに対する Red Hat のサポートレベルは、Red Hat build of Apache Camel for Quarkus リファレンス の エクステンションの概要 の章を参照してください (ログインが必要です)。
1.3. Red Hat build of Apache Camel for Quarkus の BOM ファイル
-
サポートされているエクステンションを使用するように Red Hat build of Apache Camel for Quarkus バージョン 3.20 プロジェクトを設定するには、Redhat Maven リポジトリー にある最新の BOM (Bill of Material) バージョン
3.20.1.SP1-redhat-00001
以降を使用します。
BOM 依存関係管理の詳細は、Red Hat build of Apache Camel for Quarkus を使用したアプリケーションの開発 を参照してください。
1.4. テクノロジープレビューのエクステンション
Red Hat build of Apache Camel for Quarkus リファレンス の エクステンションの概要 の章で テクノロジープレビュー として指定されている項目は、テクノロジープレビュー機能のサポート範囲で定義されているように、サポート範囲が制限されています。
1.5. 製品のエラータとセキュリティーアドバイザリー
1.5.1. Red Hat build of Apache Camel for Quarkus
最新の Red Hat build of Apache Camel for Quarkus 製品エラータとセキュリティーアドバイザリーは、Red Hat 製品エラータ ページを参照してください。
1.5.2. Red Hat build of Quarkus
最新の Red Hat build of Quarkus 製品エラータとセキュリティーアドバイザリーは、Red Hat 製品エラータ ページを参照してください。
1.6. Red Hat build of Apache Camel for Quarkus バージョン 3.20 における JUnit の重大な変更
Quarkus 3.20.1 では、JUnit が 5.10 から 5.12 にアップグレードされました。
このアップグレードでは、異なる検索アルゴリズムが使用されるため、アノテーション付きメソッドのリフレクションと継承の動作が変更されます。
ユニットテストスイートが古い動作に依存している場合は、新しい動作を考慮してテストを変更する必要があります。
リフレクションパラメーターを設定することで、新しい JUnit バージョンでエミュレートできます。
-Djunit.platform.reflection.search.useLegacySemantics=true
-Djunit.platform.reflection.search.useLegacySemantics=true
詳細は、JUnit 5.11.0 リリースドキュメントの New Features and Improvements セクションを参照してください。
1.7. 既知の問題
1.7.1. Websocket + Knative は HTTP2 では動作しない
Knative では、camel-quarkus-grpc
と camel-vertx-websocket
の両方をサポートしています。
gRPC
には HTTP2 が必要です (有効にする方法は、HTTP2 on Knativeを参照してください)。
ただし、Knative を使用した Websocket は HTTP2 では動作しません (OpenShift Container Platform の Ingress Operator を参照してください)。
そのため、WebSocket 接続を受け入れることが意図されたアプリケーションがある場合、これは HTTP/2 プロトコルのネゴシエートを許可できないようにする必要があります。そうしないと、クライアントは WebSocket プロトコルへのアップグレードに失敗します。
1.7.2. Maven 更新実行時のエラー
指定されたバージョンで Maven 更新を実行する場合:
mvn com.redhat.quarkus.platform:quarkus-maven-plugin:3.20.1.SP1-redhat-00001:update -Drewrite
mvn com.redhat.quarkus.platform:quarkus-maven-plugin:3.20.1.SP1-redhat-00001:update -Drewrite
これにより、次のようなエラーが発生する可能性があります。
Failed to apply the updates: The project is missing the Quarkus platform BOM in module foo.
Failed to apply the updates: The project is missing the Quarkus platform BOM in module foo.
影響を受けるモジュールはプロジェクトに固有であるため、影響を受けるモジュールを見つけるにはエラーメッセージを読む必要があります。
- 回避策
エラーを回避するには、エラーメッセージに記載されているモジュールに
quarkus-resteasy
依存関係を追加します。この例では、
foo
モジュールに依存関係をfoo/pom.xml
に追加します。<dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-resteasy</artifactId> </dependency>
<dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-resteasy</artifactId> </dependency>
Copy to Clipboard Copied!
1.8. 重要事項
1.8.1. IBM Power および IBM Z のサポート
Red Hat build of Apache Camel for Quarkus は、IBM Power および IBM Z でサポートされています。
1.8.2. Java の最小バージョン - JDK 17
Red Hat build of Apache Camel for Quarkus バージョン 3.20 には、JDK 17 以降が必要です。
1.8.3. OpenJDK のサポート
Red Hat build of Apache Camel for Quarkus バージョン 3.20 には、OpenJDK 21 のサポートが含まれています。
1.8.4. AdoptiumJDK のサポート
Red Hat build of Apache Camel for Quarkus バージョン 3.20 には、AdoptiumJDK 17 および AdoptiumJDK 21 のサポートが含まれています。
1.9. 解決した問題
次のリストは、Red Hat build of Apache Camel for Quarkus に影響を及ぼしていた既知の問題を示しています。これらは、Red Hat build of Apache Camel for Quarkus バージョン 3.20 で修正されています。
問題 | 説明 | |
---|---|---|
1 | CVE-2025-48734 quarkus-cxf-bom: Apache Commons BeanUtils: PropertyUtilsBean は、デフォルトで列挙型の declaredClass プロパティーを抑制しない | |
2 | CAMEL-22125 camel-platform-http-vertx - レスポンスの書き込みでは ByteBuffer よりも入力ストリームを優先する | |
3 | CAMEL-22130 camel-platform-http-vertx - タイムアウトオプションの追加 |
問題 | 説明 | |
---|---|---|
4 | Camel ルートの opentelemetry トレース ID をオーバーライドするための API を公開する | |
5 | "quarkus-camel-bom-3.15.2.redhat-00003.pom" にはアーティファクト "io.quarkiverse.artemis/quarkus-test-artemis" がない | |
6 | CAMEL-21884 バックポートリクエスト | |
7 | Camel Quarkus JPA は名前付き永続ユニットでは動作しない | |
8 | [CAMEL-22001 camel-core - Kamelet と EIP は交換変数を伝播する必要がある | |
9 | CAMEL-21495 バックポートリクエスト: camel-quarkus: REST ルートのインライン化がテスト時に正しく動作しない |
1.10. Red Hat build of Apache Camel for Quarkus バージョン 3.20 の非推奨機能
Red Hat build of Apache Camel for Quarkus バージョン 3.20. には非推奨の機能はありません。
1.11. Red Hat build of Apache Camel for Quarkus バージョン 3.20 で追加されたエクステンション
次の表は、Red Hat build of Apache Camel for Quarkus バージョン 3.20 リリースで追加されたエクステンションを示しています。
エクステンション | アーティファクト | 説明 | |
---|---|---|---|
1 | CICS | IBM CICS システムの操作 | |
2 | Groovy | Groovy スクリプトを評価します。 | |
3 | Jolokia | Jolokia を使用して JMX 経由でランタイムメトリクスと管理操作を公開します。 | |
4 | Observability services | Camel 可観測性サービス | |
5 | Olingo4 | Apache Olingo OData API を使用して OData 4.0 サービスと通信します。 | |
6 | Smooks | Smooks を使用して、EDI、CSV、JSON、YAML などの XML データと非 XML データの両方を変換、ルーティング、バインドします。 | |
7 | SSH | SSH を使用してリモートホストでコマンドを実行します。 |
1.12. Red Hat build of Apache Camel for Quarkus バージョン 3.20 で削除されたエクステンション
Red Hat build of Apache Camel for Quarkus バージョン 3.20 リリースではエクステンションは削除されません。
1.13. Red Hat build of Apache Camel for Quarkus バージョン 3.20 でサポートが変更されたエクステンション
次の表は、Red Hat build of Apache Camel for Quarkus バージョン 3.20 でサポートレベルが変更された拡張機能のリストです。
拡張機能 | アーティファクト | 説明 | |
---|---|---|---|
8 |
| AWS SDK バージョン 2.x を使用して AWS Secrets Manager サービスを管理します。 | |
9 |
| Azure Key Vault サービスでシークレットと鍵を管理します。 | |
10 |
| Azure Event Bus との間でメッセージを送受信します。 | |
11 |
| Java Bean をフラットファイル (CSV、区切り形式、固定長形式など) にマーシャリングおよびアンマーシャリングします。 | |
12 |
| DataSet ジョブを Apache Flink クラスターに送信します。 | |
13 |
| Google Secret Manager シークレットを管理する | |
14 |
| JQ 式を JSON メッセージボディーに対して評価します。 | |
15 |
| Kubernetes API に対して操作を実行する |
サポートレベルの詳細は、Red Hat build of Apache Camel for Quarkus エクステンション を参照してください。
1.14. Red Hat build of Apache Camel for Quarkus バージョン 3.20 で追加されたデータ形式
Red Hat build of Apache Camel for Quarkus バージョン 3.20 リリースには、データ形式は追加されていません。
1.15. Quarkus CXF 集約リリースノート: 3.15.3 LTS → 3.20.2 LTS
このセクションは、3.15 LTS ストリームから 3.20 LTS ストリームにアップグレードするときに役立つ可能性があります。
1.15.1. 重要な依存関係のアップグレード
1.15.2. Quarkus CXF の新機能と重要なポイント
1.15.2.1. #1486 TLS レジストリーのサポート
Quarkus TLS レジストリー は、Quarkus によって提供される拡張機能であり、TLS 設定を一元管理して、アプリケーション全体で安全な接続の管理と維持を容易にします。
io.quarkus:quarkus-tls-registry
は、Quarkus CXF 3.16.0 以降、io.quarkiverse.cxf:quarkus-cxf
の推移的な依存関係であるため、手動で追加する必要はありません。
Quarkus TLS レジストリーは、Quarkus CXF 3.16.0 以降でトラストストア、キーストア、その他の TLS/SSL 関連の設定で新たに推奨される方法です。
application.properties
Define a TLS configuration with name "hello-tls" Basic client settings Use "hello-tls" defined above for this client
# Define a TLS configuration with name "hello-tls"
quarkus.tls.hello-tls.trust-store.p12.path = client-truststore.pkcs12
quarkus.tls.hello-tls.trust-store.p12.password = client-truststore-password
# Basic client settings
quarkus.cxf.client.hello.client-endpoint-url = https://localhost:${quarkus.http.test-ssl-port}/services/hello
quarkus.cxf.client.hello.service-interface = io.quarkiverse.cxf.it.security.policy.HelloService
# Use "hello-tls" defined above for this client
quarkus.cxf.client.hello.tls-configuration-name = hello-tls
- 1
- 参照される
client-truststore.pkcs12
ファイルは、クラスパスまたはファイルシステムのいずれかで使用可能である必要があります。
Quarkus TLS レジストリー によって提供されるすべてのクライアント関連オプションは、Vert.x ベースの CXF クライアントでサポートされます。
1.15.2.1.1. 他のクライアントとの制限
TLS レジストリーによって提供される名前付き TLS 設定は http-conduit-factory
が URLConnectionHTTPConduitFactory
、HttpClientHTTPConduitFactory
に設定されている CXF クライアント、または Apache HttpClient 5 上の非同期 CXF クライアントにも使用できます。ただし、このような場合、次の TLS オプションはサポートされておらず、使用すると実行時に例外が発生します。
1.15.2.1.2. 廃止されたストア
クライアントのトラストストアとキーストアを設定する 以前の方法 も引き続きサポートされていますが、Quarkus CXF 3.16.0 以降では非推奨になっています。
application.properties
Deprecated way of setting the client trust store
# Deprecated way of setting the client trust store
quarkus.cxf.client.hello.trust-store-type = pkcs12
quarkus.cxf.client.hello.trust-store = client-truststore.pkcs12
quarkus.cxf.client.hello.trust-store-password = client-truststore-password
1.15.2.2. Vert.x HttpClient ベースの HTTP Conduit が新しいデフォルトに
Vert.x HttpClient ベースの HTTP Conduit は、Quarkus CXF 3.13.0 で 導入 されました。quarkus.cxf.client."client-name".http-conduit-factory
または quarkus.cxf.http-conduit-factory
のいずれかのオプションで VertxHttpClientHTTPConduitFactory
を設定することで、オプションで使用できるようになりました。
application.properties
Before Quarkus CXF 3.16.0, VertxHttpClientHTTPConduitFactory had to be set explicitly Set the HTTPConduitFactory per-client Set the HTTPConduitFactory globally
# Before Quarkus CXF 3.16.0, VertxHttpClientHTTPConduitFactory had to be set explicitly
# Set the HTTPConduitFactory per-client
quarkus.cxf.client."client-name".http-conduit-factory = VertxHttpClientHTTPConduitFactory
# Set the HTTPConduitFactory globally
quarkus.cxf.http-conduit-factory = VertxHttpClientHTTPConduitFactory
それ以降、改良とテストを行い、デフォルトの設定として指定されています。
Vert.x HttpClient ベースの HTTP Conduit をデフォルトとして使用する主な理由は次のとおりです。
- HTTP/2 への対応
- 特にワーカースレッドプールと SSL/TLS 設定の領域において、Quarkus とのシームレスな統合。
1.15.2.2.1. 古いデフォルトを強制する
この変更が加えられるまで、有効なデフォルトは URLConnectionHTTPConduitFactory
でした。現在も定期的にサポートおよびテストが行われています。
次の 3 つの方法のいずれかで、以前のデフォルトに戻すことができます。
-
QUARKUS_CXF_DEFAULT_HTTP_CONDUIT_FACTORY
環境変数をURLConnectionHTTPConduitFactory
に設定する -
グローバル quarkus.cxf.http-conduit-factory オプションを
URLConnectionHTTPConduitFactory
に設定する -
クライアントごとに quarkus.cxf.client."client-name".http-conduit-factory オプションを
URLConnectionHTTPConduitFactory
に設定する
1.15.2.2.2. ホスト名の検証は VertxHttpClientHTTPConduitFactory
との組み合わせではサポートされません
Quarkus CXF 3.16.0 以降、quarkus.cxf.client."client-name".hostname-verifier
を設定し、デフォルトの VertxHttpClientHTTPConduitFactory
を使用すると、実行時に例外が発生します。
このオプションの AllowAllHostnameVerifier
値は hostname-verification-algorithm
を NONE
に設定した 名前付き TLS 設定 を使用して置き換えることができます。
例: Quarkus CXF 3.16.0 より前の設定が以下の場合
application.properties
A configuration that worked before Quarkus CXF 3.16.0
# A configuration that worked before Quarkus CXF 3.16.0
quarkus.cxf.client.helloAllowAll.client-endpoint-url = https://localhost:8444/services/hello
quarkus.cxf.client.helloAllowAll.service-interface = io.quarkiverse.cxf.it.security.policy.HelloService
quarkus.cxf.client.helloAllowAll.trust-store = client-truststore.pkcs12
quarkus.cxf.client.helloAllowAll.trust-store-password = secret
quarkus.cxf.client.helloAllowAll.hostname-verifier = AllowAllHostnameVerifier
Quarkus CXF 3.16.0+ の同等の設定は次のようになります。
application.properties
An equivalent configuration for Quarkus CXF 3.16.0+
# An equivalent configuration for Quarkus CXF 3.16.0+
quarkus.tls.helloAllowAll.trust-store.p12.path = client-truststore.pkcs12
quarkus.tls.helloAllowAll.trust-store.p12.password = secret
quarkus.tls.helloAllowAll.hostname-verification-algorithm = NONE
quarkus.cxf.client.helloAllowAll.client-endpoint-url = https://localhost:8444/services/hello
quarkus.cxf.client.helloAllowAll.service-interface = io.quarkiverse.cxf.it.security.policy.HelloService
quarkus.cxf.client.helloAllowAll.tls-configuration-name = helloAllowAll
1.15.2.3. #1447 VertxHttpClientHTTPConduit
で非同期モードをサポート
Quarkus CXF 3.17.0 より前では、VertxHttpClientHTTPConduit
に基づく CXF クライアントは同期的にしか呼び出すことができませんでした。
@CXFClient("hello") HelloService hello; String callHello() { // Synchronous CXF client call hello.hello("Joe"); }
@CXFClient("hello")
HelloService hello;
String callHello() {
// Synchronous CXF client call
hello.hello("Joe");
}
Quarkus CXF 3.17.0 では、VertxHttpClientHTTPConduit
ベースのクライアントに非同期モードが導入されました。
import io.smallrye.mutiny.Uni; @CXFClient("hello") HelloService hello; Uni<String> callHelloAsync() { return Uni.createFrom() // Asynchronous CXF client call returning java.util.concurrent.Future .future(hello.helloAsync("Joe")) .map(HelloResponse::getReturn); }
import io.smallrye.mutiny.Uni;
@CXFClient("hello")
HelloService hello;
Uni<String> callHelloAsync() {
return Uni.createFrom()
// Asynchronous CXF client call returning java.util.concurrent.Future
.future(hello.helloAsync("Joe"))
.map(HelloResponse::getReturn);
}
これは、既存の Apache HttpClient 5 Async HTTP Transport とほぼ同じように動作します。主な違いは、(現在は非推奨となっている) io.quarkiverse.cxf:quarkus-cxf-rt-transports-http-hc5
依存関係をアプリケーションに追加する必要がなくなったことです。
組み込みの wsdl2java
ツールを使用して 非同期メソッドを生成する 必要があります。
詳細は、非同期クライアント ページを確認してください。
1.15.2.4. #1609 VertxHttpClientHTTPConduit
による HTTP リダイレクトのサポート
Quarkus CXF 3.17.0 より前では、特定のクライアントに対して quarkus.cxf.client."client-name".auto-redirect
が有効になっている場合でも、VertxHttpClientHTTPConduit
ベースの CXF クライアントは HTTP リダイレクト (Location
応答ヘッダーを含む HTTP ステータスコード 301、302、303、および 307) に従いませんでした。
Quarkus CXF 3.17.0 では、この機能に加えて quarkus.cxf.client."client-name".max-retransmits
の適切なサポートも追加されています。
新しい設定プロパティー quarkus.cxf.client."client-name".redirect-relative-uri
が導入されました。これは、CXF ですでにサポートされている CXF クライアント要求コンテキストで http.redirect.relative.uri
プロパティーを設定することと同じです。
1.15.2.5. #1639 quarkus.cxf.client."client-name".max-same-uri
設定オプションの追加
詳細は quarkus.cxf.client."client-name".max-same-uri
のドキュメントを確認してください。
@dcheng1248 の 貢献 に特に感謝します。
1.15.2.6. #1628 VertxHttpClientHTTPConduit
によるリクエストデータのディスクへのオフロードをサポート
Quarkus CXF 3.17.0 では、VertxHttpClientHTTPConduit
による リダイレクトのサポート が追加されました。これには、再送信のためにリクエスト本体の基本的なメモリー内キャッシュが含まれていました。Quarkus CXF 3.18.0 以降、VertxHttpClientHTTPConduit
は、本体のサイズが設定可能なしきい値を超えた場合に、データをディスクにオフロードできるようになりました。新しい機能がどのように動作するかを確認するには、次の新しい設定オプションのドキュメントを確認してください。
上記の設定オプションは、URLConnectionHTTPConduit
でも機能します。
1.15.2.7. #1616 VertxHttpClientHTTPConduit
での認可再送信をサポート
Quarkus CXF 3.20.0 より前では、リモートサービスが 401 Unauthorized
または 407 Proxy Authentication Required
との応答が返されると、VertxHttpClientHTTPConduit
でサポートされているクライアントは単に失敗していました。唯一の回避策は URLConnectionHTTPConduit
などの他の HTTP conduit を使用することでした。
Quarkus CXF 3.20.0 以降、VertxHttpClientHTTPConduit
は、次の 1 つ以上のオプションから派生した Authorization
ヘッダー値を含む新しいリクエストを送信することにより、401
および 407
ステータスコードを適切に処理します。
1.15.2.8. #1680 すべての CXF クライアントの TLS オプションを設定するために quarkus.cxf.client.tls-configuration-name
を導入
Quarkus CXF 3.19.0 より前は、quarkus.cxf.client."client-name".tls-configuration-name
または (現在は非推奨) quarkus.cxf.client."client-name".key-store*
および quarkus.cxf.client."client-name".trust-store*
オプションを使用してしか、CXF クライアントごとにトラストストアおよびキーストアを設定することができませんでした。
複数のクライアントがある場合、この設定は冗長になる可能性があります。
Quarkus CXF 3.19.0 以降では、quarkus.cxf.client.tls-configuration-name
オプションを使用して、すべてのクライアントのトラストストアとキーストアを設定できます。
1.15.3. バグ修正
1.15.3.1. #1697 quarkus-cxf-integration-tracing-opentelemetry
と quarkus-jdbc-Oracle
を使用するとネイティブビルドが失敗する
Quarkus CXF 3.19.0 より前では、quarkus-jdbc-Oracle
を quarkus-cxf-integration-tracing-opentelemetry
または quarkus-cxf-rt-ws-rm
と 1 つのアプリケーションで組み合わせると、ネイティブイメージのビルド中に次のようなエラーが発生しました。
org.graalvm.compiler.debug.GraalError: com.oracle.graal.pointsto.constraints.UnsupportedFeatureException: Detected a MBean server in the image heap. This is currently not supported, but could be changed in the future. Management beans are registered in many global caches that would need to be cleared and properly re-built at image build time. Class of disallowed object: com.sun.jmx.mbeanserver.JmxMBeanServer
org.graalvm.compiler.debug.GraalError: com.oracle.graal.pointsto.constraints.UnsupportedFeatureException:
Detected a MBean server in the image heap. This is currently not supported, but could be changed in the future.
Management beans are registered in many global caches that would need to be cleared and properly re-built at image build time.
Class of disallowed object: com.sun.jmx.mbeanserver.JmxMBeanServer
Quarkus CXF 3.19.0 でこの問題は修正されました。
JMX 機能はネイティブモードでは依然としてサポートされていません。
各サービスメソッドに対して、ビルド時にいくつかの補助クラスが生成されます。これらは、操作の要求または応答を表す場合があります。したがって、com.acme.HelloService.hello()
メソッドでは、少なくとも 2 つのクラス com.acme.jaxws_asm.Hello
と com.acme.jaxws_asm.HelloResponse
が生成されます。Quarkus CXF 3.20.0 および CXF 4.1.1 より前では、サービスクラスの名前は考慮されませんでした。したがって、単一の Java パッケージ内に同じ名前のメソッドを含む複数のサービスインターフェイスがある場合、それらの補助クラスの名前が衝突することになります。つまり、これらのサービスの 1 つだけに適したクラスの 1 セットだけがアプリケーションに保存されることになります。実行時に、アプリケーションログに次のエラーメッセージが表示される場合があります。
java.lang.IllegalArgumentException: argument type mismatch at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.apache.cxf.databinding.AbstractWrapperHelper.createWrapperObject(AbstractWrapperHelper.java:114) at org.apache.cxf.jaxws.interceptors.WrapperClassOutInterceptor.handleMessage(WrapperClassOutInterceptor.java:91) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307) at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:530) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:441) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:356) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:314) at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96) at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:140) at jdk.proxy6/jdk.proxy6.$Proxy132.hello(Unknown Source)
java.lang.IllegalArgumentException: argument type mismatch
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.apache.cxf.databinding.AbstractWrapperHelper.createWrapperObject(AbstractWrapperHelper.java:114)
at org.apache.cxf.jaxws.interceptors.WrapperClassOutInterceptor.handleMessage(WrapperClassOutInterceptor.java:91)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307)
at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:530)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:441)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:356)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:314)
at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96)
at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:140)
at jdk.proxy6/jdk.proxy6.$Proxy132.hello(Unknown Source)
この問題は CXF 4.1.1 および Quarkus CXF 3.20.0 で修正されました。新しいバージョンでは、サービスクラスの名前が考慮されます。したがって、上記の例では、生成されるクラスの名前はそれぞれ com.acme.jaxws_asm.helloservice.Hello
と com.acme.jaxws_asm.helloservice.HelloResponse
です。
1.15.4. 非推奨
1.15.4.1. #1633 HttpClientHTTPConduitFactory
の *.http-conduit-factory
の値は非推奨に
quarkus.cxf.http-conduit-factory
と quarkus.cxf.client."client-name".http-conduit-factory
の HttpClientHTTPConduitFactory
値は、Quarkus CXF 2.3.0 で導入されて以来存在しています。
HttpClientHTTPConduit
hs、Quarkus CXF 内で実際に広く受け入れられることはありませんでした。CXF でこれがデフォルトとして使用され、#992、CXF-8885、CXF-8951、CXF-8946、CXF-8903 などのバグを回避するために、独自のデフォルト (URLConnectionHTTPConduitFactory
) を導入せざるを得ませんでした。現在、Quarkus で非常に適切にサポートできる VertxHttpClientHTTPConduit
があるため、HttpClientHTTPConduit
にリソースを費やす理由はなくなりました。
HttpClientHTTPConduitFactory
はドキュメントで非推奨としてマークされ、まだ使用しているユーザーのためにアプリケーションの起動時にいくつかの警告が追加されました。
1.15.4.2. #1632 io.quarkiverse.cxf:quarkus-cxf-rt-transports-http-hc5
が非推奨に
io.quarkiverse.cxf:quarkus-cxf-rt-transports-http-hc5
エクステンションは、Quarkus CXF 3.19.0 以降非推奨となり、3.21.0 で削除される予定です。代わりに VertxHttpClientHTTPConduit
の非同期モード を使用してください。
これは、今後に向けて Vert.x HttpClient に基づく単一の HTTP Conduit のみをサポートする弊社の取り組みの一環です。
1.15.4.3. 非推奨の設定プロパティー
-
quarkus.cxf.client."client-name".username
- 代わりにquarkus.cxf.client."client-name".auth.username
を使用してください -
quarkus.cxf.client."client-name".password
- 代わりにquarkus.cxf.client."client-name".auth.password
を使用してください -
quarkus.cxf.client."client-name".key-store
- 代わりにquarkus.cxf.client."client-name".auth.tls-configuration-name
を使用してください -
quarkus.cxf.client."client-name".key-store-password
- 代わりにquarkus.cxf.client."client-name".auth.tls-configuration-name
を使用してください -
quarkus.cxf.client."client-name".key-store-type
- 代わりにquarkus.cxf.client."client-name".auth.tls-configuration-name
を使用してください -
quarkus.cxf.client."client-name".key-password
- 代わりにquarkus.cxf.client."client-name".auth.tls-configuration-name
を使用してください -
quarkus.cxf.client."client-name".trust-store
- 代わりにquarkus.cxf.client."client-name".auth.tls-configuration-name
を使用してください -
quarkus.cxf.client."client-name".trust-store-password
- 代わりにquarkus.cxf.client."client-name".auth.tls-configuration-name
を使用してください -
quarkus.cxf.client."client-name".trust-store-type
- 代わりにquarkus.cxf.client."client-name".auth.tls-configuration-name
を使用してください
1.15.5. 全変更ログ
https://github.com/quarkiverse/quarkus-cxf/compare/3.15.3...3.20.2