gpt4 book ai didi

java - 如何使用 Spring JmsTemplate 更改 MQ header

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:14:36 24 4
gpt4 key购买 nike

我正在使用简单的 Spring JmsTemplate 将消息发送到 MQ。

<beans:bean id="myJMSTemplate" class="org.springframework.jms.core.JmsTemplate">
<beans:property name="connectionFactory">
<beans:ref bean="cachedConnectionFactory" />
</beans:property>
<beans:property name="pubSubDomain">
<beans:value>false</beans:value>
</beans:property>
<beans:property name="receiveTimeout">
<beans:value>1000</beans:value>
</beans:property>
</beans:bean>

<int-jms:outbound-channel-adapter id="sendMessageToAvengers" channel="antEventChannel" jms-template="myJMSTemplate" destination-name='com.marvel.avengers.antMan'/>

这工作正常,但是,我的客户端应用程序无法处理消息,因为默认情况下消息格式为“MQHRF2”。如何更改我的 MQ header 以便显式发送 MQSTR 格式。

提前致谢。

最佳答案

您必须设置属性 targetcllient=1 才能将消息作为 MQSTR 发送。要在发送部分 java 代码时执行此操作,请按以下方式更改队列名称

String senderQ = "queue:///MYQUEUENAME?targetClient=1";
jmsTemplate.send(senderQ, new MessageCreator() {
public Message createMessage(Session session) throws JMSException {
TextMessage message = session.createTextMessage(text);
message.setJMSReplyTo(replyToQ);
return message;
}
});

或者你可以尝试在 jmstemplate bean 中设置它

<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
<!-- set format to MQSTR with "targetClient=1" parameter -->
<property name="defaultDestinationName" value="queue:///default?targetClient=1" />
<property name="connectionFactory" ref="mqConnectionFactory" />
</bean>

关于java - 如何使用 Spring JmsTemplate 更改 MQ header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37998961/

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