2.44. JSLT


JSLT を使用して JSON ペイロードをクエリーまたは変換します。

2.44.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.44.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-jslt</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.44.3. ネイティブモードの allowContextMapAll オプション

allowContextMapAll オプションはネイティブモードではサポートされていません。これは、CamelContextExchange などのセキュリティーに敏感な 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");
Copy to Clipboard Toggle word wrap

これら (.json ファイルに保存されている可能性のある他のテンプレート) をネイティブイメージに含めるには、application.properties ファイルに次のようなものを追加する必要があります。

quarkus.native.resources.includes = *.json
Copy to Clipboard Toggle word wrap

2.44.4.2. ネイティブモードでの JSLT 関数の使用

camel-quarkus の JSLT 関数をネイティブモードで使用する場合、関数をホストするクラスを リフレクションに登録 する必要があります。ターゲット関数を登録できない場合、以下のようにスタブを書いてしまうことがあります。

@RegisterForReflection
public class MathFunctionStub {
    public static double pow(double a, double b) {
        return java.lang.Math.pow(a, b);
    }
}
Copy to Clipboard Toggle word wrap

ターゲット関数 Math.pow(…​) は、以下のようにコンポーネントに登録できる MathFunctionStub クラスを介してアクセスできるようになりました。

@Named
JsltComponent jsltWithFunction() throws ClassNotFoundException {
    JsltComponent component = new JsltComponent();
    component.setFunctions(singleton(wrapStaticMethod("power", "org.apache.cq.example.MathFunctionStub", "pow")));
    return component;
}
Copy to Clipboard Toggle word wrap
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat