簡體   English   中英

端點上沒有可用的消費者:Endpoint[direct://LookUpRoute]

[英]No consumers available on endpoint: Endpoint[direct://LookUpRoute]

我是 Apache 駱駝的新手。 我正在嘗試將交換從 java 方法發送到路由,但它給了我“Caused by: org.apache.camel.component.direct.DirectConsumerNotAvailableException: No consumer available on endpoint”錯誤。 我想了解這個錯誤到底是什么以及我們什么時候得到這個錯誤?

@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>

嘗試從 routerBuilder 實現 public class 中放入來自 Spring 上下文的注解 @Component

前任:

@Component //<<<<---- This
public class RouterClass extends RouteBuilder {

    @Override
    public void configure() throws Exception {

    }
}//class closure

您遇到的錯誤意味着您正在發送到 Camel 上下文中不存在的直接端點。

由於您發布了定義相關路線的 XML 片段,因此存在兩個可能的問題(正如@claus-ibsen 已評論的那樣):

  • 您發布的 XML 未使用 您正在啟動駱駝上下文,但它不使用您的 XML 代碼。 您使用的是 Spring 嗎? 然后你可以在 Spring XML 中定義你的駱駝路線
  • 您的設置很好,但是您的 Java 代碼發送消息過早,即在直接端點啟動並運行之前。 您可以將此代碼放在 Test class 中,並在 Camel 上下文啟動並准備好后運行它。

暫無
暫無

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

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