Как получить ответ от маршрута в Apache Camel внутри процессора и вызвать этот маршрут внутри процессора? - PullRequest
0 голосов
/ 05 марта 2020

Как получить ответ от маршрута в Apache Верблюд внутри процессора?

Обогащить содержимое из базы данных 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) {

Я не могу создать ROute внутри IfsProcessor, что означает, что мне нужно сделать его в главном классе и вызвать его отсюда?

также я хочу вызывать другую БД для каждого сотрудника и требовать, чтобы он возвращал ответ, чтобы я мог обновить объект сотрудника.

Как это возможно?

1 Ответ

1 голос
/ 06 марта 2020

Как я написал в моем ответе на другой вопрос , проблема возникает из-за того, что вы выполняете большую часть работы внутри Processor (обычный Java) вместо маршрута Camel.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...