gpt4 book ai didi

java - 当我使用 Spring 和 MQ Queue 发送 OBject 消息时,为什么会收到 JMSBytesMessage

转载 作者:行者123 更新时间:2023-12-02 13:04:58 25 4
gpt4 key购买 nike

所以我使用 Spring 和 IBM MQ Queue 发送一个对象:

public void sendObjectMessage(final Object message) {

// jmsTemplate.convertAndSend(message);

jmsTemplate.send(new MessageCreator()
{
public Message createMessage(Session session) throws JMSException
{
ObjectMessage outMessage = session.createObjectMessage((Serializable) message);
return(outMessage);
}
});
}

在调试过程中,我可以看到我确实将其作为对象消息发送。但是使用 Spring 的监听器实现,我在 onMessage() 方法中获取消息作为 JMSBytesMessages???

public void onMessage(Message message) {
System.out.println(">>>>>>> Recieved in onMessage");
System.out.println(message.getClass());
}

输出:

>>>>>>> Recieved in onMessage
class com.ibm.jms.JMSBytesMessage

有人知道这是怎么回事吗?这很难调试,因为它似乎发生在队列上???

感谢您的帮助

P.S 我也尝试使用

捕获消息
if (message instanceof ObjectMessage) {
object = ((ObjectMessage) message).getObject();
}

if (message instanceof JMSBytesMessage) {
System.out.println("ITS A BYTES MESSAGE!!!!!!!!!!!");
}

这两个都不起作用???

最佳答案

我的第一个猜测是,您正在使用WebSphere AppServer,并且您的JMS队列对象(在JNDI中)被配置为 native MQ系列客户端,即您创建一个JMSObjectMessage,将其移交给 session ,然后MQSeries认为它必须转换为 BytesMessage。

关于java - 当我使用 Spring 和 MQ Queue 发送 OBject 消息时,为什么会收到 JMSBytesMessage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6150006/

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