gpt4 book ai didi

java - 为什么我在 Mule 中使用 JMS 队列后没有得到更改的有效负载?

转载 作者:行者123 更新时间:2023-11-29 05:40:02 24 4
gpt4 key购买 nike

我已经使用 ActiveMQ 与 JMS 建立了一个流程,我向队列发送了一条消息,但是出于任何原因,当我尝试从队列中使用、获取消息并通过设置新的有效负载来更改它时,它不会'不改变。我究竟做错了什么?

基本上我想通过 HTTP 响应发回更改后的负载

这是我的代码:

 <jms:activemq-connector name="Active_MQ" 
specification="1.1"
brokerURL="tcp://localhost:61616"
validateConnections="true"
doc:name="Active MQ"
persistentDelivery="true"
/>

<flow name="jmsFlow1" doc:name="jmsFlow1">
<http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8081" path="jms" doc:name="HTTP"/>
<set-payload value="#['This is a message test']" doc:name="Set Payload"/>
<choice doc:name="Choice">
<when expression="#[true]">
<processor-chain>
<logger message="Im here!!" level="INFO" doc:name="Logger"/>
<jms:outbound-endpoint queue="StudioIN" connector-ref="Active_MQ" doc:name="JMS Queue Studio IN" exchange-pattern="request-response"/>
</processor-chain>
</when>
</choice>
<logger message="#[payload]" level="INFO" category="//// RETURNED FROM QUEUE PAYLOAD" doc:name="Logger"/>
</flow>

<flow name="fmsAdapterConsumerFlow1" doc:name="fmsAdapterConsumerFlow1">
<jms:outbound-endpoint queue="StudioIN" connector-ref="Active_MQ" doc:name="JMS StudioIN Consumer" exchange-pattern="request-response"/>
<set-payload value="#[payload + ' returned from queue']" doc:name="Set Payload"/>
</flow>

最佳答案

您没有在 jms:outbound-endpointjms:inbound-endpoint 上指定 exchange-pattern。因此 Mule 使用默认值,即 one-way。因此,fmsAdapterConsumerFlow1 中所做的负载更改不可能得到 jmsFlow1 的回复。

在两个 JMS 端点上设置 exchange-pattern="request-response" 并在连接器上设置 disableTemporaryReplyToDestinations="false" 否则您永远不会收到任何响应.

关于java - 为什么我在 Mule 中使用 JMS 队列后没有得到更改的有效负载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17955924/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com