2015-10-28 77 views
0

我想从Apache的骆驼网站 http://camel.apache.org/springintegration.html测试骆驼Spring集成的例子,但我得到异常 org.apache.camel.RuntimeCamelException:org.springframework.integration.MessageDeliveryException:调度有没有订户通道输出通道。下面骆驼和Spring集成

我的短代码给出:

<channel id="inChannel"/> 
<channel id="outputChannel"/> 

<beans:bean id="greeting" class="com.javarticles.spring.integration.Greeting"/> 

<service-activator input-channel="inChannel" ref="greeting" method="sayHello" output-channel="outputChannel"/> 

<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring"> 
    <route> 
     <from uri="activemq:activemqsource"/> 
     <to uri="log:input"/> 
     <to uri="spring-integration:inChannel? inputChannel=outputChannel"/> 
     <to uri="log:output"/> 
    </route> 


我试图寻找相关的问题,但我没有用骆驼获得可以在任何一个可以告诉我如何订阅的outputchannel

回答

0

按照你提到的骆驼文件,配置应该是这样的:

<to uri="spring-integration:inputChannel?inOut=true&amp;inputChannel=outputChannel"/> 

你的问题是inOut=true

Spring集成端点应该使用的交换模式。如果inOut = true,那么预计会有一个回复通道,可以从Spring集成消息头或在端点上配置。

+0

@Bilan感谢您的回复。但据我所知,Spring集成消费者端点中的选项inputChannel = outputChannel用于接收来自服务激活器的回复。如果这是不正确的,我如何定义答复频道。你能给我举个例子吗? – gerex

+0

???我不明白你不明白。我只是告诉你骆驼教程提供了什么。根据他们的话,你应该使用'inputChannel = outputChannel'来期待'service-activator'的回复。你真的需要'inOut = true',因为我对骆驼一无所知,除非教程中的那些单词。 –

+0

这是相同的错误。 – gerex