2017-12-21 78 views
0

リモートチャンクを使用したバネバッチを使用していますが、私に問題があります。 json形式(アプリケーション/ json)を使用してリクエストキューにmaster publihイベントが発生すると、スレーブがこのjsonイベントを読んだとき。リモートチャンク:JSONオブジェクトからインスタンス化できません

例外:com.fasterxml.jackson.databind.JsonMappingException:によって引き起こさ

タイプが見つかりません適切なコンストラクタ[単純型、クラスorg.springframework.batch.integration.chunk.ChunkRequest] :["jobId":0、 "items":[{"aaa": "11111"}で はJSONオブジェクトからインスタンス化できません(既定のコンストラクタまたは作成者がないか、 0、 "readCount":0、 "writeCount":0、 "filterCount":0、 "readSkipCount":0、 "writeSkipCount"、 "bbb": "22222"、 "ccc": "33333"}、 "stepContribution" ":0、" processSkipCount ":0、" exitStatus ":{" exitCode ":" EXECUTING "、" exitDescription ":" "、" running ":true}、" skipCount ":0 、 "stepSkipCount":0}、 "sequence":0};行1、列:2]

RabbitMQのメッセージ:

ヘッダー:
型ID:org.springframework.batch.integration.chunk.ChunkRequest CONTENT_ENCODING:UTF-8 CONTENT_TYPE:アプリケーション/ JSON ペイロード 308バイト エンコード:文字列 { "ジョブID":0、 "アイテム":[{ "AAA": "11111"、 "BBB": "22222"、 "CCC":」 33333 "} ] 0、 "writeCount":0、 "filterCount":0、 "readSkipCount":0、 "writeSkipCount":0、 "processSkipCount":0、 "exitStatus":{"exitCode" ":" 実行」、 "exitDescription": ""、 "ランニング":真}、 "SKIPCOUNT":0、 "stepSkipCount":0}、 "シーケンス":0}

私は 'Jackson2JsonMessageConverter' を使用します'AmqpOutboundEndpoint'と 'AmqpInboundChannelAdapter'のメッセージコンバータとして

私を助けてくれますか?

ありがとうございます。

答えて

0

ChunkRequestdoesn't support Jackson JSON serialization - デフォルトのCTORはありません。

Javaシリアル化のみサポートしています。代わりにSimpleMessageConverterを使用してください。

または、カスタムジャクソンデシリアライザを作成してください。

+0

あなたのクイック再生のためにゲーリーありがとうございます。私はあなたに手紙を書く前に解決策を探すのに多くの時間を費やしましたが、成功しませんでした。 – salam

+0

私はここであなたが新しいことを知っています。 [誰かが私の質問に答えるとどうすればいいですか?](https://stackoverflow.com/help/someone-answers) –

+0

他の関連する問題があります。リモートチャンクにデフォルトのコンバータを使用すると、同じアプリケーション内の他のrabbitMQインスタンスもシリアル化されたメッセージを交換します。どのように他の人のためのjsonメッセージを生成し、消費することができますか? jsonコンバーターで他のrabbitMQインスタンスを定義すると、問題は解決されず、生成されたメッセージはすべてシリアライズされたメッセージになります。私を助けてくれますか?ありがとうございました。 – salam

関連する問題