2017-11-01 5 views
0

같은 MQ 대기열에서 두 가지 유형의 메시지를 받게됩니다. 이 두 메시지의 구조는 완전히 다르며 공통 필드가 없습니다. 두 수업 모두에 해당하는 POJO가 있습니다. 어떤 메시지가 어떤 POJO와 일치하는지 정확하게 식별하는 방법은 무엇입니까?동일한 메시지 채널에 들어오는 두 가지 다른 메시지 유형의 구문 분석

receivedMessageClassA = objectMapper.readValue(payload, ClassA.class); 

확인을 구문 분석이 위의 성공 또는 필수 필드 중 하나가 receivedMessageClassA의 존재 여부를 확인하는 경우 다음과 같이

는 내가 현재하고있는 중이 야 같습니다.

위의 확인이 실패하면

가, 두 번째 클래스

receivedMessageClassB = objectMapper.readValue(payload, ClassB.class); 

에 대한 구문 분석을 수행하는 것은 그러나이 방법은 오류가 발생하기 쉬운 내가 그것을 완전히 만족하지입니다. 누군가 제발 도와 줄 수 있니?

답변

0

글쎄, 내가 가장 좋은 방법은 사용하는 것입니다 생각 instanceof :

if (payload instanceof ClassA) 
    receivedMessageClassA = objectMapper.readValue(payload, ClassA.class); 
else 
    receivedMessageClassB = objectMapper.readValue(payload, ClassB.class);