第86章 Jolt
JOLT コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Camel 2.16 以降で利用可能
Jolt コンポーネントを使用すると、JOLT 仕様を使用して JSON メッセージを処理できます。JSON 変換に JSON を実行する場合に適しています。
Maven ユーザーは、このコンポーネントの以下の依存関係を
pom.xml に追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
jolt:specName[?options]
jolt:specName[?options]
specName は、呼び出す仕様のクラスパスローカル URI、またはリモート仕様の完全な URL (例:file://folder/myfile.json)です。
以下の形式で URI にクエリーオプションを追加できます。
?option=value&option=value&...
オプション リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
|
オプション
|
デフォルト
|
説明
|
|---|---|---|
allowContextMapAll (producer)
|
false
|
コンテキストマップが前詳細へのアクセスを許可するかどうかを設定します。デフォルトでは、メッセージの本文とヘッダーにのみアクセスできます。このオプションは、現在の Exchange および CamelContext へのフルアクセスに対して有効にできます。これを行うと、CamelContext API の全機能へのアクセスが開かれるため、潜在的なセキュリティーリスクが発生します。
|
allowTemplateFromHeader (producer)
|
false
|
ヘッダーのリソーステンプレートの使用を許可するかどうか (デフォルトは false)。このオプションを有効にすると、セキュリティーの問題があります。たとえば、ヘッダーに信頼されていないコンテンツやユーザー派生コンテンツが含まれている場合、これは最終的にエンドアプリケーションの信頼性および完全性に影響を与える可能性があるため、このオプションは注意して使用してください。
|
contentCache
|
true
|
ロード時のリソースコンテンツのキャッシュ。注記:Camel 2.9 のキャッシュされたリソースコンテンツは、エンドポイントの
clearContentCache 操作を使用して JMX 経由でクリアできます。
|
outputType
|
Hydrated
|
変換の出力を、List または Maps、または JSON を含む String オブジェクトとして Hydrated に設定します。
|
inputType
|
Hydrated
|
変換の入力を List または Maps、または JSON を含む String オブジェクトとして Hydrated に設定します。
|
transformDsl
|
Chainr
|
提供された仕様の読み込みに使用する 変換 DSL。利用可能な値 Chainr、Shiftr、Defaultr、Removr、および Sortr。
|
動的仕様 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Camel は ヘッダーを提供し、仕様に異なるリソースの場所を定義できます。このヘッダーが設定されている場合、Camel は設定されたエンドポイントでこれを使用します。これにより、実行時に動的仕様を指定できます。
|
ヘッダー
|
タイプ
|
説明
|
|---|---|---|
|
CamelJoltResourceUri
|
文字列
|
設定されたエンドポイントの代わりに使用する仕様リソースの URI。
|
サンプル リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
たとえば、以下のようなものを使用できます。
from("activemq:My.Queue").
to("jolt:com/acme/MyResponse.json");
from("activemq:My.Queue").
to("jolt:com/acme/MyResponse.json");
また、ファイルベースのリソースは以下のようになります。
from("activemq:My.Queue").
to("jolt:file://myfolder/MyResponse.json?contentCache=true").
to("activemq:Another.Queue");
from("activemq:My.Queue").
to("jolt:file://myfolder/MyResponse.json?contentCache=true").
to("activemq:Another.Queue");
また、以下のように、ヘッダーを使用してコンポーネントを動的に使用する仕様を指定することもできます。
from("direct:in").
setHeader("CamelJoltResourceUri").constant("path/to/my/spec.json").
to("jolt:dummy?allowTemplateFromHeader=true");
from("direct:in").
setHeader("CamelJoltResourceUri").constant("path/to/my/spec.json").
to("jolt:dummy?allowTemplateFromHeader=true");
警告
allowTemplateFromHeader オプションを有効にすると、セキュリティーの問題があります。たとえば、ヘッダーに信頼できないコンテンツまたはユーザー派生コンテンツが含まれる場合、これは最終的に、エンドアプリケーションの確実性と整合性に及ぼす可能性があるため、このオプションを使用してください。