gpt4 book ai didi

c# - EasyNetQ 未从使用 RabbitMQ Java 客户端 API 发布的队列中读取消息

转载 作者:太空宇宙 更新时间:2023-11-04 07:28:40 24 4
gpt4 key购买 nike

我们使用 Coldfusion,利用 java RabbitMQ 客户端 API 将消息发布到队列,然后使用 EasyNetQ 使用 C# 从队列中读取消息。

消息是一个字符串。

java 客户端将消息发布为内容类型为 text/plain 的未序列化字节数组。

当我们尝试从队列中读取消息时,无论 EasyNetQ 端定义的消息类型是什么,我们总是会抛出 EasyNetQ.EasyNetQInvalidMessageTypeException 。我已经尝试将它作为字节数组和只是一个基本对象。我认为 EasyNetQ 每次都期待一个序列化对象?

我们得到的异常是

Message: 2344462 BasicProperties: (content-type=text/plain, content-encoding=, headers=, delivery-mode=1, priori ty=0, correlation-id=, reply-to=, expiration=, message-id=, timestamp=, typ e=, user-id=, app-id=, cluster-id=_)

Exception: EasyNetQ.EasyNetQInvalidMessageTypeException: Message type is incorrect. Expecte d 'System_Byte[]:mscorlib', but was ''

有人可以帮忙吗?

最佳答案

EasyNetQ 需要一个 JSON 序列化的 UTF-8 主体,表示订阅方法中给定的 .NET 类型,并且基本属性的“类型”字段将使用 EasyNetQ 样式类型描述进行填充。

如果您想自己进行反序列化,则应该使用高级 API。

关于c# - EasyNetQ 未从使用 RabbitMQ Java 客户端 API 发布的队列中读取消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18123869/

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