2017-12-21 32 views
0

원격 청킹과 함께 스프링 일괄 처리를 사용하고 있습니다. json 형식 (application/json)을 사용하여 요청 대기열에서 master publih 이벤트가 발생하면 예외가 발생합니다 슬레이브가이 json 이벤트를 읽을 때.원격 청킹 : JSON 객체에서 인스턴스화 할 수 없습니다.

예외 :

의해 발생 : com.fasterxml.jackson.databind.JsonMappingException : 형 검색 결과에서 적합한 생성자 [단순형 클래스 org.springframework.batch.integration.chunk.ChunkRequest] : JSON 개체 (기본 생성자 또는 작성자가 누락되었거나 형식 정보를 추가/사용 가능하게 설정하지 않아도 됨)에서 인스턴스를 생성 할 수 없습니다. [출처 : { "jobId": 0, "items": [{ "aaa": "11111" " "0", "filterCount": 0, "readSkipCount": 0, "writeSkipCount" ": 0,"processSkipCount ": 0,"exitStatus ": {"exitCode ":"EXECUTING ","exitDescription ":" ","실행 중 : "}"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 ":" ","실행 "TRUE},"SKIPCOUNT ": 0,"stepSkipCount ": 0},"순서 "0}

나는 'Jackson2JsonMessageConverter'를 사용 'AmqpOutboundEndpoint'및 'AmqpInboundChannelAdapter'에 대한 메시지 변환기로

제발 도와 줄 수 있습니까?

고마워요.

답변

0

ChunkRequestdoesn't support Jackson JSON serialization - 기본 CTOR가 없습니다.

Java 직렬화 만 지원합니다. 대신 SimpleMessageConverter을 사용하십시오.

또는 사용자 정의 Jackson 디시리얼라이저를 작성하십시오.

+0

빠른 재생을 위해 게리 감사합니다. 글쓰기 전에 해결책을 찾기 위해 많은 시간을 보냈지 만 성공하지 못했습니다. – salam

+0

당신이 여기 새로 왔음을 압니다. [누군가 내 질문에 대답 할 때 무엇을해야합니까?] (https://stackoverflow.com/help/someone-answers). –

+0

다른 관련 문제가 있습니다. 원격 청크에 기본 변환기를 사용하면 다른 응용 프로그램의 rabbitMQ 인스턴스도 직렬화 된 메시지를 교환합니다. 어떻게 다른 사람들을 위해 json 메시지를 생성하고 소비 할 수 있습니까? json 변환기로 다른 rabbitMQ 인스턴스를 정의하면 문제가 해결되지 않고 생성 된 모든 메시지가 직렬화 된 메시지입니다. 도와 줄수있으세요? 고맙습니다. – salam