2016-11-30 97 views
0

我正在對Spring Cloud Stream的內容類型自動轉換進行一些測試。Spring Cloud Stream:無法將JSON數組轉換爲POJO列表

正如spring-cloud-stream Guide所示。將({"greeting":"Hello, world"})的json格式轉換爲POJOGreetingMessage對象自動消耗在@StreamListener中時。這個測試成功。

,當我改變輸出List<GreetingMessage > [{"greeting":"Hello, world"}, {"greeting":"Good morning"}]輸入將不會將它轉換爲POJOList<GreetingMessage >對象,但作爲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。

+0

謝謝你,馬呂斯。我稍後將會討論一個問題。 – JasonS

+0

[問題](https://github.com/spring-cloud/spring-cloud-stream/issues/726)在Github上提交。 – JasonS