繁体   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