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();
}
이것은 FileProcessor 클래스에게 있습니다
public class FileProcessor {
@ServiceActivator(outputChannel = "xmlChannel")
public String process(Message<String> msg) {
String content = msg.getPayload();
return content;
}
}
이것은 Enricher 클래스 :
가 메시지 "제품을 풍요롭게이 .."인쇄 점점되지
public void enrichProduct(Message<String> msg) {
System.out.println("Enriching product " + msg);
}
}
공용 클래스 Enricher { , 나는 잘못 된 것을 정말로 확신하지 못합니다.
고마워요. 같은 파일에 다른 통합 흐름이 정의되어 있기 때문에 .channel ("xmlChannel")이 작동하지 않는다고 추리합니다. 그에 따라 질문의 세부 사항을 수정하겠습니다. –
어쨌든'fileOrocessor'가 호출 되었습니까? 'org.springframework.integration' 카테고리에 대한 디버그 로깅을 켜면 메시지가 플로우를 어떻게 여행하는지 볼 수 있습니다 –