在 Java 中反序列化由 C# 生成的 RabbitMQ 消息

斯蒂芬·王

我在 C# 中有一個 RabbitMQ 數據服務,並且“輸出”了一些消息。訂閱者/客戶端使用 Java。我可以接收消息,我知道如何在 C# 中反序列化,但我不知道如何將消息反序列化為對象。在爪哇。

C# 序列化:

byte[] message;
BinaryFormatter bf = new BinaryFormatter();
using (var ms = new MemoryStream())
{
    bf.Serialize(ms, updateMessage);
    message = ms.ToArray();
}

C#反序列化:

MyObject message = null;
using (var memStream = new MemoryStream())
{
    var binForm = new BinaryFormatter();
    memStream.Write(body, 0, body.Length);
    memStream.Seek(0, SeekOrigin.Begin);
    message = (MyObject)binForm.Deserialize(memStream);
}

Java接收器:

@RabbitListener(queues = queueName)
public void receive(??? message ) {
    // deserailize message right here
    // btw, I do not know what type of received message should be initialized.
}
威廉·西加

在 Java 中反序列化一個用 .NET 內置的二進制序列化器序列化的對像是不可能的(你必須自己實現反序列化器)。

最簡單的選擇是使用基於文本的序列化選項,例如 JSON 和 XML。有很多關於如何在 C# 和 Java 中執行此操作的教程。

如果您需要使用二進制格式,可以查看 Google 的協議緩衝區或 apache thrift。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在C#中反序列化json Java对象

来自分类Dev

如何使用 C# 反序列化 Kafka 中的 Avro 消息

来自分类Dev

RabbitMQ中消息丢失

来自分类Dev

Rabbitmq 中的消息标签

来自分类Dev

为 RabbitMQ 生成的消息设置属性

来自分类Dev

从Java代码获取RabbitMQ队列中的消息计数

来自分类Dev

从Java代码获取RabbitMQ队列中的消息计数

来自分类Dev

如何使用C#从RabbitMQ中的队列接收单个消息

来自分类Dev

Protofuf c++ - 反序列化的消息没有数据

来自分类Dev

Java中枚举的反序列化

来自分类Dev

Java中的GSON反序列化

来自分类Dev

Java中的反序列化

来自分类Dev

如何在Actix actor中反序列化消息?

来自分类Dev

使用springboot在KafkaConsumer中反序列化kafka消息

来自分类Dev

RabbitMQ / AMQP中的消息组

来自分类Dev

RabbitMQ中的死信死信消息

来自分类Dev

查看celery / rabbitmq中的消息

来自分类Dev

RabbitMQ中的日志消息传输

来自分类Dev

肥皂消息反序列化

来自分类Dev

反序列化Avro消息

来自分类Dev

Laravel反序列化消息

来自分类Dev

EventStore / EventHub中的序列化/反序列化消息

来自分类Dev

EventStore / EventHub中的序列化/反序列化消息

来自分类Dev

消息6522“无法加载动态生成的序列化程序集”进行XML序列化

来自分类Dev

Java反序列化

来自分类Dev

RabbitMQ是否在磁盘上将每个入站消息序列化?

来自分类Dev

如何使用Java中的Kafka 8.2 API生成消息?

来自分类Dev

处理前检查RabbitMQ消息序列

来自分类Dev

反序列化由mongodb生成的包含bson数据类型的json