gpt4 book ai didi

java - 在 ActiveMq 中将 JSON 消息转换为 javax.jms.ObjectMessage

转载 作者:太空宇宙 更新时间:2023-11-04 02:02:04 25 4
gpt4 key购买 nike

我有一个 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 cannot be cast to javax.jms.ObjectMessage

我读过这篇文章page来自 activeMQ 的内容是这样的

Currently, ActiveMQ comes with a transformer that can transform XML/JSON text to Java objects, but you can add your own transformers as well

我不太明白这部分如何转换数据。

我已在 apache-activemq-5.15.0\lib 中添加了 xstream-1.4.10.jar 和 jettison-1.3.8.jar 并重新启动了 ActiveMq 服务器。但我仍然得到消费者的错误。同样在ActiveMQ控制台->队列->消息属性中,它显示转换错误

请告诉我如何在 ActiveMQTextMessage 类型到达消费者之前将其转换为 javax.jms.ObjectMessage

最佳答案

ActiveMQ 中没有转换器可以将任何随机 JSON 字符串转换为 ObjectMessages,您必须编写自己的转换器来处理您发送的任何格式。 ActiveMQ 中的转换器会转换一些从 JSON 映射的基本类型,但这很棘手并且不一定可靠。您最好自己处理 TextMessage 并使用 JSON 做一些有意义的事情。

关于java - 在 ActiveMq 中将 JSON 消息转换为 javax.jms.ObjectMessage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45621645/

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