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にキャストが、List<String> POJO などはありません。


だから私の質問は次のとおりです。

  • は、これは既存の問題であるか、私が何か間違ったことをやっていますか?

コード:

@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

Githubの[Issue](https://github.com/spring-cloud/spring-cloud-stream/issues/726)を送信しました。 – JasonS

関連する問題