私のSpring統合は、入力チャネルからJSONメッセージを変換し、対応するキーを提供することによってJSONメッセージから値を抽出しようとしています。 SpelEvaluationExceptionがスローされます。jsonパス表現によるSpring統合変換エラー
春の統合の設定
<int:object-to-json-transformer input-channel="inputEventChannel" output-channel="jsonMapChannel"/>
<int:transformer input-channel="jsonMapChannel" output-channel="transformChannel"
expression="#jsonPath(payload, '$.[0].EVENTNAME')"/>
エラーメッセージによって引き起こさ
:org.springframework.messaging.MessageHandlingException:式の評価に失敗しました:。#jsonPath(ペイロード、」$を[ 0] .EVENTNAME ');ネストされた例外はorg.springframework.expression.spel.SpelEvaluationExceptionです:EL1022E: 'class org.springframework.expression.TypedValue'型のオブジェクトにマップされた関数 'jsonPath'は呼び出せません。failedMessage = GenericMessage [payload = [{" 1、 "CREATEDTIMESTAMP":1493929367000、 "TRANSACTIONID": "100.2.33"}、ヘッダー= {json__ContentTypeId __ =クラスorg.springframework.util.LinkedCaseInsensitiveMap、ID = acbc053a-b466-fbb9-8d3d-f60c78371b3e、json__TypeId __ =クラスjava.util.ArrayListの、contentTypeの=アプリケーション/ JSON、タイムスタンプ= 1493933245720}]
は、私が知っているかもしれません何がここで間違っていた?私もこれで試してみました。同じエラー動作。
#jsonPath(payload, '$.EVENTNAME')
ありがとうございました。
おかげで、あなたが示唆したように、私は、JSON-パス用のMavenのエントリを追加した後、それが働いた@GaryRussell ...このログを表示する必要があります。 – VeeAar
Spring IntegrationでのJSONメッセージの処理に関するもう1つの質問があります。いくつかのキーと値のペアを変更したり、既存のJSONメッセージにさらにいくつかのキーと値のペアを追加する必要がある場合は、それらを達成する方法を知っていますか?ありがとう。 – VeeAar
あなたは本当に新しい質問をするべきです - ここの管理者はコメントの拡張された解説や無関係の質問を好まないのです。ターゲットクラスが 'LinkedHashMap'であるjson-to-object-transformerを使用することができます。新しいプロパティを追加し、再びjsonに変換し直します。つまり、元のオブジェクトが最初に 'LinkedCaseInsensitiveMap'のリストだったようです。そのため、JSONに変換する前にマップを操作しないでください。 –