1

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

消息是一个字符串。

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

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

我们得到的例外是

消息:2344462 基本属性:(content-type=text/plain,content-encoding= ,headers=,delivery-mode=1,priority=0,correlation-id= ,reply-to=,expiration= ,message-id= , timestamp= , typ e= , user-id= , app-id= , cluster-id=_)

异常:EasyNetQ.EasyNetQInvalidMessageTypeException:消息类型不正确。预期为 'System_Byte[]:mscorlib',但为 ''

有人可以帮忙吗?

4

1 回答 1

1

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

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

于 2013-10-14T08:28:23.573 回答