【问题标题】:How to get response from a Route in Apache Camel inside a Processor and call that Route inside processor?如何从处理器内的 Apache Camel 中的路由获取响应并在处理器内调用该路由?
【发布时间】:2020-06-18 00:59:25
【问题描述】:

如何从处理器内部的 Apache Camel 中的路由获取响应?

从数据库 1 中丰富内容并创建员工列表。

现在为每个员工调用数据库 2,但希望在处理器中执行相同操作。

         from("direct:processOrder").id("dd")

                .log(LoggingLevel.INFO, getEmployeeCall())
                .setBody(constant(getEmployeeCall()))
                .to("jdbc:masterdata?outputClass=com.evry.integrator.Employee")
                .to("log:?level=INFO&showBody=true")                    
                .process(new IfsProcessor())
                .end();

public class IfsProcessor implements Processor{

   @Override
  public void process(Exchange exchange) throws Exception {
    List<Employee> eiEmployees = (List<Employee>) exchange.getIn().getBody(List.class);

    for (Employee employee : eiEmployees) {

我无法在 IfsProcessor 中创建路由,这意味着我需要在主类中创建它并从这里调用它?

我还想为每个员工调用另一个数据库并希望它返回响应,以便我可以更新员工对象。

这怎么可能?

【问题讨论】:

    标签: java apache-camel


    【解决方案1】:

    正如我在my answer to your other question 中所写,问题出现是因为您在Processor(纯Java)而不是Camel 路由中完成了大部分工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-15
      • 1970-01-01
      • 2018-03-04
      相关资源
      最近更新 更多