こんにちは私はSpring Integrationを使用して次のフローを実装しようとしています。 RESTサービスを公開し、ペイロードを操作し、変更されたペイロードをJMSに書き込み、RESTサービスに応答します。Spring統合:RESTからJMSへの統合でタイムアウトエラーが発生する
@Bean
public IntegrationFlow httpInputFlow() {
return IntegrationFlows
.from(Http.inboundGateway(“/company”)
.requestMapping(r -> r
.methods(HttpMethod.POST))
.requestPayloadType(com.poc.model.Company.class))
.transform(jsonToObjectTransformer())
.channel(requestChannel())
.get();
}
@Bean
@Transformer(inputChannel=“requestChannel”, outputChannel=“responseChannel”)
ObjectToJsonTransformer jsonToObjectTransformer() {
return new ObjectToJsonTransformer();
}
@Bean
public DirectChannel requestChannel() {
return MessageChannels.direct().get();
}
@Bean
public DirectChannel responseChannel() {
return MessageChannels.direct().get();
}
@Bean
IntegrationFlow outboundFlow() throws Exception {
return IntegrationFlows.from(responseChannel()) .handle(Jms.outboundAdapter(connectionFactory()).destination(“samplequeue”))
.get();
}
要求ペイロードがキューに到達しています。ただし、RESTサービスは応答なしでタイムアウトします。変換されたペイロードをキューに入れる必要があり、残りのサービスの応答にも送信されます。利用可能な例が見つかりませんでした。
何か助けていただければ幸いです。
感謝Artem、これを試してみましょう。 – jack
ブリッジハンドラを.bridge()で渡す方法をアドバイスできますか?ブリッジメソッドは、Consumer>を引数として想定しています。サンプルはxmlにあり、java dslではありません。 –
jack
は '.brdige(null)'でなければなりません。 Java DSLを5.0のSpring Integration Coreに移行した後、引数なしで '.bridge()'を追加しました。 –