2017-12-21 4 views
0

instanziieren Ich verwende Spring Batch mit Remote-Chunking und ich habe das folgende Problem: wenn das Master Publih-Ereignis in der Anforderungswarteschlange mit dem JSON-Format (Anwendung/JSON), habe ich eine Ausnahme wenn der Slave dieses json-Ereignis liest.Remote-Chunking: kann nicht von JSON-Objekt

Ausnahme:

Verursacht durch: com.fasterxml.jackson.databind.JsonMappingException: Kein geeigneter Konstruktor für Typen gefunden [einfache Art, Klasse org.springframework.batch.integration.chunk.ChunkRequest] : kann nicht aus JSON-Objekt instanziieren (fehlender Standardkonstruktor oder -ersteller oder müssen möglicherweise Typinformationen hinzufügen/aktivieren?) um [Quelle: {"jobId": 0, "Artikel": [{"aaa": "11111" , "bbb": "22222", "ccc": "33333"}], "stepContribution": {"readCount": 0, "writeCount": 0, "filterCount": 0, "readSkipCount": 0, "writeSkipCount ": 0," processSkipCount ": 0," exitStatus ": {" exitCode ":" AUSGABE "," exitDescription ":" "," running ": true}," skipCount ": 0 , "stepSkipCount": 0}, "Sequenz": 0}; Linie: 1, Säule: 2]

RabbitMQ Nachricht:

headers:
TypeId: org.springframework.batch.integration.chunk.ChunkRequest content_encoding: UTF-8 content_type: application/json Payload 308 Bytes Encoding: string { "jobId": 0, "item": [{ "aaa": "11111", "bbb": "22222", "ccc":“ 33333 "} ], "stepContribution": {"readCount": 0, "writeCount": 0, "filterCount": 0, "readSkipCount": 0, "writeSkipCount": 0, "processSkipCount": 0, "exitStatus": {"exitCode ":" Executing“, "exitDescription": "", "läuft": true}, "SKIPCOUNT": 0, "stepSkipCount": 0}, "Sequenz": 0}

ich benutze 'Jackson2JsonMessageConverter' als eine Nachricht Konverter für 'AmqpOutboundEndpoint' und 'AmqpInboundChannelAdapter'

Können Sie mir bitte helfen?

Vielen Dank.

Antwort

0

ChunkRequestdoesn't support Jackson JSON serialization - es hat keine Standard-CTOR.

Es unterstützt nur Java Serialisierung; Verwenden Sie stattdessen eine SimpleMessageConverter.

Oder schreiben Sie einen benutzerdefinierten Jackson Deserializer.

+0

Vielen Dank Gary für Ihre schnelle Wiederholung. Ich habe lange nach einer Lösung gesucht, bevor ich Ihnen geschrieben habe, aber ohne Erfolg. – salam

+0

Ich sehe Sie sind neu hier. [Was soll ich tun, wenn jemand meine Frage beantwortet?] (Https://stackoverflow.com/help/someone-answers). –

+0

Ich habe ein anderes Problem, wenn ich den Standard-Konverter für Remote-Chunking verwenden, tauschen die anderen rabbitMQ-Instanzen in der gleichen Anwendung die serialisierten Nachrichten auch aus. Wie kann Json-Nachricht für die anderen produzieren und konsumieren? Wenn ich eine andere rabbitMQ-Instanz mit dem json-Konverter definiere, wird das Problem nicht gelöst, und alle meine produzierten Nachrichten sind die serialisierten Nachrichten. Kannst du mir bitte helfen? Vielen Dank. – salam