【发布时间】:2026-02-12 23:00:02
【问题描述】:
我有一个 ActimeMQ 消费者,它需要 javax.jms.ObjectMessage 格式的消息。 此消息 pojo 有 5 个字符串元素。
现在我正在尝试在 NodeJs 中为这个消费者编写一个消息生产者。 我正在使用stompit 模块
我当前的 NodeJs 代码是
stompit.connect(connectOptions, function(error, client) {
if (error) {
console.log('connect error ' + error.message);
return;
} else {
console.log("connected");
}
var sendHeaders = {
'destination': '/queue/test',
'transformation': 'jms-object-json'
};
var msg = new Object();
msg.val1 = "12";
msg.val2 = "test";
msg.val3 = "1";
msg.val4 = "1";
msg.val5 = "Y";
var frame = client.send(sendHeaders);
frame.write(JSON.stringify(msg));
frame.end();
}); Java 消费者能够获取消息但抛出异常
org.apache.activemq.command.ActiveMQTextMessage 无法转换为 javax.jms.ObjectMessage
我从 activeMQ 读到了这个page,上面写着
目前,ActiveMQ 带有一个转换器,可以将 XML/JSON 文本转换为 Java 对象,但您也可以添加自己的转换器
我不太了解如何转换数据的这一部分。
我在 apache-activemq-5.15.0\lib 中添加了 xstream-1.4.10.jar 和 jettison-1.3.8.jar 并重新启动了 ActiveMq 服务器。 但我仍然得到消费者的错误。 同样在 ActiveMQ 控制台 -> 队列 -> 消息属性中,它显示转换错误
请告诉我如何在此 ActiveMQTextMessage 类型到达消费者之前将其转换为 javax.jms.ObjectMessage
【问题讨论】: