2016-11-30 7 views
0

콘텐츠 형식 자동 변환 (Spring Cloud Stream)에 대한 몇 가지 테스트를 수행하고 있습니다.Spring Cloud Stream : JSON 배열을 POJO 목록으로 캐스팅 할 수 없음

마찬가지로 spring-cloud-stream Guide이 표시됩니다. GreetingMessage ({"greeting":"Hello, world"})의 json 형식은 @StreamListener에서 소비하면 POJOGreetingMessage 개체로 자동 전송됩니다. 이 테스트가 성공적으로 완료되었습니다.

하지만, 내가 List<GreetingMessage > [{"greeting":"Hello, world"}, {"greeting":"Good morning"}]로서 출력,List<GreetingMessage >가 POJO개체로 전송할 NOT입력을 변경할 수 있지만 같은 POJOList<String> 때.


그래서 제 질문은 :

  • 이 기존의 문제인가, 아니면 내가 뭔가 잘못하고있는 중이 야?

번호 :

@Data 
@AllArgsConstructor 
public class GreetingMessage { 
    private String greeting; 
} 

@EnableBinding(Source.class) 
public class GreetingSource { 

    @Bean 
    @InboundChannelAdapter(value = Source.OUTPUT, poller = @Poller(fixedDelay = "1000", maxMessagesPerPoll = "1")) 
    public MessageSource<List<GreetingMessage>> greeting() { 
     return new MessageSource<List<GreetingMessage>>() { 
      public Message<List<GreetingMessage>> receive() { 
       return new GenericMessage(Arrays.asList(new GreetingMessage("hello"), new GreetingMessage("hello2"))); 
      } 
     }; 
    } 
} 

@EnableBinding(Sink.class) 
public class GreetingSink { 
    @StreamListener(Sink.INPUT) 
    public void receive(Message<List<GreetingMessage>> msg) { 
     // handle GreetingMessage 
     System.out.println(msg); 
    } 
} 

답변

1

이것은 파라미터 타입이 고려되지 않은 메시지 변환 프로세스 (단지 원시 List 형)의 제한이있다. GitHub를 지원해야한다고 생각한다면 GitHub를 엽니 다.

+0

감사합니다. 마리우스. 나는 나중에 문제를 정상 회담 할 것이다. – JasonS

+0

Github의 [Issue] (https://github.com/spring-cloud/spring-cloud-stream/issues/726)를 제출했습니다. – JasonS