簡體   English   中英

Apache 駱駝進程(處理器)方法未被調用

[英]Apache camel process(processor) method is not being called

我在另一篇文章中看到手動添加 camel 上下文並啟動它應該如何工作,但它不適合我。 我仔細檢查了 from 和 to 路徑,它們似乎是正確的。 不確定為什么它不調用該方法並希望得到一些建議

public class CsvRouteBuilder extends DdsRouteBuilder {
  private CsvConverterProcessor csvConverterProcessor;
  private CamelContext camelContext;
  @Autowired
  public CsvRouteBuilder(CsvConverterProcessor csvConverterProcessor) throws Exception {
    this.csvConverterProcessor = csvConverterProcessor;
    camelContext.addRoutes(new RouteBuilder() {
      @Override
      public void configure() throws Exception {
        from("{{input.files.csv}}")
            .routeId("CSVConverter")
            .process(new Processor() {
              @Override
              public void process(Exchange exchange) throws Exception {
                System.out.println("hitting");
              }
            })
            .to("{{output.files.csv}}");
      }
    });
    camelContext.start();

  }

不調用處理器只是因為您的路由未正確聲明,因此 Spring Boot 不知道它。

正確的方法是讓您的 class 擴展RouteBuilder以定義您的路由,並使用@Component注釋您的 class 以在使用基於注釋的配置和類路徑掃描時將其標記為自動檢測的候選對象。

您的代碼應該是這樣的:

@Component
public class CsvRouteBuilder extends RouteBuilder {

    @Override
    public void configure() throws Exception {
        from("{{input.files.csv}}")
            .routeId("CSVConverter")
            .process(new Processor() {
                @Override
                public void process(Exchange exchange) throws Exception {
                    System.out.println("hitting");
                }
            })
            .to("{{output.files.csv}}");
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM