私はコンテンツタイプの自動変換の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);
}
}
ありがとう、マリウス。私は後で問題をサミットする。 – JasonS
Githubの[Issue](https://github.com/spring-cloud/spring-cloud-stream/issues/726)を送信しました。 – JasonS