当前位置: 首页 > 知识库问答 >
问题:

endpoint上没有可用的使用者:endpoint[direct://LookUpRoute]

钱星华
2023-03-14

我是阿帕奇骆驼队的新手。我试图将一个交换从java方法发送到一个路由,但它给了我“由:org.apache.camel.component.direct.DirectConsumerNotAvailableException: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>

共有2个答案

史鹏云
2023-03-14

尝试从 routerBuilder 实现来自 Spring 上下文的注释@Component放入公共类

前任:

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

    @Override
    public void configure() throws Exception {

    }
}//class closure
商琛
2023-03-14

您遇到的错误意味着您正在发送到Camel上下文中不存在的直接endpoint。

由于您发布了一个定义有问题的路由的XML片段,因此可能存在两个问题(正如@Claus-ibsen已经评论的那样):

  • 您发布的 XML 未在使用中。您正在启动一个 Camel 上下文,但它不使用您的 XML 代码。你用的是Spring吗?然后,您可以在Spring XML中定义Camel路由。
  • 您的
  • 设置很好,但您的 Java 代码过早发送消息,即在直接endpoint启动并运行之前。您可以将此代码放在 Test 类中,并在 Camel 上下文启动并准备就绪后运行它。
 类似资料:
  • 我用的是骆驼2.13.1,有一个奇怪的行为。如果我想测试我的路由,我已经用XML编写了。 我总是在一条路由上得到没有消费者可用的信息。如果我把它部署在Tomcat上,一切都正常工作。即使在启动时,我也可以看到日志,它清楚地说明路由已被消耗。 我的路由如下所示: 我这样开始测试: 我基本上只是开始我的Spring-Context。spring-module.xml加载多个camel-context.

  • 我正在构建一个路由slip bean,除了动态路由之外,我还想向收件人列表的endpoint发送一个参数。 我希望使用类似“direct:test?param=value”的东西,其中param和value在路由单POJO中设置 根据我对直接组件的理解,一个单一的“直接:测试”endpoint将接收所有路由交换,但是我需要一种从路由条中读取参数发送的方法 如何将此参数用于接收交换的endpoint

  • 我想使用Camel从ActiveMQ获取一条消息,然后根据消息内容(protobuf)向Twitter发送一条或多条消息。我编写了一个从路由内调用的bean,它使用注入将多条消息发送到“direct:xyz”endpoint。 这个豆子看起来像:- 我在其他路线上也遇到过这个问题(这肯定与Twitter功能无关),但刚刚解决了这个问题。然而,这一次,我想真正理解问题是什么!如有任何帮助,不胜感激,

  • 当我尝试向pod应用服务时,endpoint总是无。有人知道根本原因吗?我还检查选择器是否与部署中定义的匹配。亚马尔。下面是我使用的部署、服务文件。我还附上了服务说明。 部署。亚马尔 服务亚马尔 kubectl描述svc kubectl get pods-n mynamespace——显示标签 kubectl获取svc gethnode-n mynamespace-o宽

  • 有人能帮我解决这个错误并解释我怎么了吗? 我正在开发一个简单的驼峰路径来处理信息,然后将其存储在文件中。 我正在使用的技术: JDK 11 Apache Camel 3.3.0 Spring靴2.3.0 当我想测试骆驼路线时,我得到了以下错误。 这是我的路线 这是我的测试用例 这是我的gradle档案