1
編集済み 私はSpringインテグレーションには新しく、サービスアクティベータ(ハンドルメソッド経由)からチャネルにデータを渡そうとしています。.handle()でサービスアクティベータの出力チャネルをコンフィグレーションする
@Bean
public IntegrationFlow processFileFlow() {
return IntegrationFlows
.from("fileInputChannel")
.transform(fileToStringTransformer())
.handle("fileProcessor", "process")
.channel("xmlChannel")
.get();
}
@Bean
public DirectChannel fileInputChannel(){
return new DirectChannel();
}
@Bean
public DirectChannel xmlChannel(){
return new DirectChannel();
}
@Bean
public FileProcessor fileProcessor() {
return new FileProcessor();
}
@Bean
public IntegrationFlow enrichDataFlow() {
return IntegrationFlows
.from("xmlChannel")
.handle("enricher", "enrichProduct")
.channel("bvChannel")
.get();
}
@Bean
public Enricher enricher() {
return new Enricher();
}
これは、これはEnricherクラスである
public class FileProcessor {
@ServiceActivator(outputChannel = "xmlChannel")
public String process(Message<String> msg) {
String content = msg.getPayload();
return content;
}
}
FileProcessorクラスである: "..製品を豊か" パブリッククラスEnricher {
public void enrichProduct(Message<String> msg) {
System.out.println("Enriching product " + msg);
}
}
メッセージ印刷取得されていません私は何が間違っているのか分かりません。
ありがとうございます。同じファイルに定義されている別の統合フローがあるため、.channel( "xmlChannel")が機能していないと推測しています。それに応じて質問の詳細を編集します。 –
'fileOrocessor'はとにかく呼び出されていますか? 'org.springframework.integration'カテゴリのデバッグログを有効にすると、メッセージがどのように流れていくのかを見ることができます –