端点上没有可用的消费者:Endpoint[direct://LookUpRoute]
No consumers available on endpoint: Endpoint[direct://LookUpRoute]
我是 Apache Camel 的新手。我正在尝试将交换从 java 方法发送到路由,但它给了我“Caused by: org.apache.camel.component.direct.DirectConsumerNotAvailableException: No consumers 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>
您遇到的错误意味着您正在发送到 Camel 上下文中不存在的直接端点。
由于您发布了定义相关路线的 XML 片段,因此有两个可能的问题(@claus-ibsen 已经评论过):
- 您发布的XML未被使用。您正在启动一个 Camel 上下文,但它不使用您的 XML 代码。你在使用 Spring 吗?那么你可以define your Camel routes in Spring XML.
- 您的设置很好,但是您的 Java 代码 发送消息太早 ,即在直接端点启动和 运行ning 之前。在 Camel 上下文启动并准备就绪后,您可以将此代码放入测试 class 和 运行 中。
尝试从路由器构建器实现 public class 中放入来自 Spring context
的注解 @Component
例如:
@Component //<<<<---- This
public class RouterClass extends RouteBuilder {
@Override
public void configure() throws Exception {
}
}//class closure
我是 Apache Camel 的新手。我正在尝试将交换从 java 方法发送到路由,但它给了我“Caused by: org.apache.camel.component.direct.DirectConsumerNotAvailableException: No consumers 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>
您遇到的错误意味着您正在发送到 Camel 上下文中不存在的直接端点。
由于您发布了定义相关路线的 XML 片段,因此有两个可能的问题(@claus-ibsen 已经评论过):
- 您发布的XML未被使用。您正在启动一个 Camel 上下文,但它不使用您的 XML 代码。你在使用 Spring 吗?那么你可以define your Camel routes in Spring XML.
- 您的设置很好,但是您的 Java 代码 发送消息太早 ,即在直接端点启动和 运行ning 之前。在 Camel 上下文启动并准备就绪后,您可以将此代码放入测试 class 和 运行 中。
尝试从路由器构建器实现 public class 中放入来自 Spring context
的注解 @Component例如:
@Component //<<<<---- This
public class RouterClass extends RouteBuilder {
@Override
public void configure() throws Exception {
}
}//class closure