Нет доступных потребителей на конечной точке: Конечная точка [direct: // LookUpRoute] - PullRequest
0 голосов
/ 28 сентября 2019

Я новичок в верблюде.Я пытаюсь отправить обмен от метода java к маршруту, но он выдает сообщение об ошибке «Причина: org.apache.camel.component.direct.DirectConsumerNotAvailableException: на конечной точке нет потребителей».Я хочу понять, что именно эта ошибка и когда мы получаем это?

@EndpointInject(uri = "direct:reportRoute")
private ProducerTemplate templatereportRoute;


public void saveDataFromExchange(Map<String, Object> DataMap){

    List<Map<String, Object>> paramList = new ArrayList<Map<String, Object>>();

    List<Map<String, Object>> rows = templatereportRoute.requestBody("direct:reportReport", DataMap, List.class);

<from uri="direct:reportRoute"/>

 <log message="  - ${body}"  loggingLevel="INFO"/>    

<setProperty propertyName="DataMap">
  <simple>${body}</simple>
</setProperty>

1 Ответ

0 голосов
/ 30 сентября 2019

Ошибка, с которой вы столкнулись, означает, что вы отправляете на прямую конечную точку, которая не существует в контексте верблюда.

Поскольку вы опубликовали фрагмент XML, который определяет рассматриваемый маршрут, есть две возможные проблемы (как уже прокомментировано @ claus-ibsen):

  • XML-код , который вы опубликовалине используется .Вы запускаете верблюжий контекст, но он не использует ваш XML-код.Вы используете Spring?Затем вы можете определить ваши маршруты Camel в Spring XML .
  • С вашими настройками все в порядке, но ваш код Java отправляет сообщение слишком рано , т. Е. До того, как будет запущена прямая конечная точкаи работает.Вы можете поместить этот код в класс Test и запустить его после запуска и готовности контекста Camel.
...