Camel Enrichment错误:端点上没有可用的消费者:端点

时间:2014-06-17 15:59:16

标签: routing apache-camel activemq

我试图通过两个队列之间的方法传递我的消息。这是我的路线:

<camelContext xmlns="http://camel.apache.org/schema/spring">
    <route>
        <from uri="jms:queue:testQSource"/>
        <to uri="direct:adder"/>
    </route>
    <route>
        <from uri="direct:adder"/>
        <log message="Routing message from testQSource to testQDestination queue with data ${body}"/>
        <to uri="jms:queue:testQDestination"/>
    </route>
</camelContext>

以下是包含加法器的类:

package com.example.integration;

public class Modifier {
    public String adder(String words) {
         System.out.println("adder entered");
         return words + 'a';
    }
}

输入的&#34;加法器打印声明不会被打印,而且该消息没有额外的&#34; a&#34;最后。任何想法为什么没有使用这个功能?

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

该错误消息表示您尚未定义从direct:adder使用的路由...因为直接是同步的,所以它需要在调用时使用路由/消费者。 ..

请参阅http://camel.apache.org/bean.html,它应该看起来像这样......

<camelContext xmlns="http://camel.apache.org/schema/spring">
    <route>
        <from uri="jms:queue:testQSource"/>
        <to uri="direct:adder"/>
    </route>
    <route>
      <from uri="direct:adder"/>
      <to uri="myBean"/>
      <log message="Routing message from testQSource to testQDestination queue with data ${body}"/>
      <to uri="jms:queue:testQDestination"/>
    </route>
</camelContext>

<bean id="myBean" class="com.example.integration.Modifier"/>