2013-05-30 69 views
0

消息不会有任何replyTo。它只是将消息放在队列中,并且期望任何“单向”答复,但是如果消息处理失败,则需要回退以便其他服务器可以处理它。所以,为了处理我使用的是发布 - 订阅通道像下面消息没有回复到

<int:publish-subscribe-channel id="SplitChannel"> 
</int:publish-subscribe-channel> 
<int-jms:inbound-gateway request-channel="UChannel" request-destination-name="U" extract-request-payload="true" acknowledge="transacted" concurrent-consumers="5" max-messages-per-task="5"/> 
<int:chain input-channel="UChannel"> 
    <int-http:outbound-gateway 
     url="http://localhost/u.php?fileid={fileid}" 
     http-method="GET" 
     reply-channel="nullChannel"> 
    <int-http:uri-variable name="fileid" expression="headers.fileid"/> 
    </int-http:outbound-gateway> 
</int:chain> 

我得到的错误如下

DEBUG: [May-30 00:43:28,768] jms.listener.DefaultMessageListenerContainer - Initiating transaction rollback on application exception 
javax.jms.InvalidDestinationException: Cannot determine reply destination: Request message does not contain reply-to destination, and no default reply destination set. 
DEBUG: [May-30 00:43:28,768] apache.activemq.ActiveMQSession - 43979-1369895783067-0:15:1 Transaction Rollback 

回答

2

对该消息的<gateway/>是双向的整合;通道适配器是单向的;改为使用<int-jms:message-driven-channel-adapter/>

+0

谢谢!有用! – user2254842

+0

在这种情况下,协议是'接受'的答案。 –