gpt4 book ai didi

java - Spring-JMS:向 WebSphere MQ 发送 JMSObjectMessage,但接收 JMSBytesMessage

转载 作者:太空宇宙 更新时间:2023-11-04 14:55:27 26 4
gpt4 key购买 nike

我使用 Spring 的 JmsTemplate 将 ObjectMessage 发送到 MQ 队列:

this.jmsTemplate.send(this.queue, new MessageCreator() {
public Message createMessage(Session session) throws JMSException {
MyPayload payload = new MyPayload();
payload.setSomething(...);
return session.createObjectMessage(payload);
}
});

发送的消息的类型为 com.ibm.jms.JMSObjectMessage,但相应的目标接收类型为 com.ibm.jms.JMSBytesMessage 的消息:

Message message = this.jmsTemplate.receive(this.queue);

知道转换发生的原因和地点吗?

This similar question没有真正回答。

更多信息:TextMessage 以 com.ibm.jms.JMSTextMessage 形式接收,内部仅包含字符串的 ObjectMessage 会转换为 com.ibm.jms.JMSBytesMessage >,也是。

最佳答案

找到了,我使用了错误的传输类型:

<bean id="mqQueue" class="com.ibm.mq.jms.MQQueue">
<property name="baseQueueName" value="..." />
<property name="targetClient">
<util:constant static-field="com.ibm.mq.jms.JMSC.MQJMS_CLIENT_NONJMS_MQ" />
</property>
</bean>

相反,它应该是:

<bean id="mqQueue" class="com.ibm.mq.jms.MQQueue">
<property name="baseQueueName" value="..." />
<property name="targetClient">
<util:constant static-field="com.ibm.mq.jms.JMSC.MQJMS_CLIENT_JMS_COMPLIANT" />
</property>
</bean>

关于java - Spring-JMS:向 WebSphere MQ 发送 JMSObjectMessage,但接收 JMSBytesMessage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23272029/

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