2.44. JSLT
JSLT を使用して JSON ペイロードをクエリーまたは変換します。
2.44.1. 含まれるもの リンクのコピーリンクがクリップボードにコピーされました!
-
JSLT コンポーネント、URI 構文:
jslt:resourceUri
使用方法と設定の詳細については、上記リンクを参照してください。
2.44.2. Maven コーディネート リンクのコピーリンクがクリップボードにコピーされました!
code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成
または、既存のプロジェクトに座標を追加します。
<dependency> <groupId>org.apache.camel.quarkus</groupId> <artifactId>camel-quarkus-jslt</artifactId> </dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-jslt</artifactId>
</dependency>
2.44.3. ネイティブモードの allowContextMapAll オプション リンクのコピーリンクがクリップボードにコピーされました!
allowContextMapAll
オプションはネイティブモードではサポートされていません。これは、CamelContext
や Exchange
などのセキュリティーに敏感な Camel コアクラスへのリフレクティブアクセスが必要なためです。これはセキュリティーリスクとみなされるため、この機能へのアクセスはデフォルトでは提供されません。
2.44.4. 追加の Camel Quarkus 設定 リンクのコピーリンクがクリップボードにコピーされました!
2.44.4.1. ネイティブモードでクラスパスから JSLT テンプレートをロードする リンクのコピーリンクがクリップボードにコピーされました!
通常、このコンポーネントはクラスパスからテンプレートをロードします。ネイティブモードでも機能させるには、quarkus.native.resources.includes
プロパティーを使用して、テンプレートファイルをネイティブ実行可能ファイルに明示的に埋め込む必要があります。
たとえば、以下のルートは、transformation.json
という名前のクラスパスリソースから JSLT スキーマを読み込みます。
from("direct:start").to("jslt:transformation.json");
from("direct:start").to("jslt:transformation.json");
これら (.json
ファイルに保存されている可能性のある他のテンプレート) をネイティブイメージに含めるには、application.properties
ファイルに次のようなものを追加する必要があります。
quarkus.native.resources.includes = *.json
quarkus.native.resources.includes = *.json
2.44.4.2. ネイティブモードでの JSLT 関数の使用 リンクのコピーリンクがクリップボードにコピーされました!
camel-quarkus の JSLT 関数をネイティブモードで使用する場合、関数をホストするクラスを リフレクションに登録 する必要があります。ターゲット関数を登録できない場合、以下のようにスタブを書いてしまうことがあります。
ターゲット関数 Math.pow(…)
は、以下のようにコンポーネントに登録できる MathFunctionStub
クラスを介してアクセスできるようになりました。