我们正在使用Coldfusion,利用Java RabbitMQ Client API将消息发布到队列,然后使用EasyNetQ使用C#从队列中读取消息。
该消息是一个字符串。
Java客户端将消息发布为具有文本/纯内容类型的未序列化字节数组。
当我们尝试从队列中读取消息时,无论在EasyNetQ端定义的消息类型如何,总是会抛出EasyNetQ.EasyNetQInvalidMessageTypeException。我已经尝试了它作为字节数组,只是一个基本的对象。我认为EasyNetQ每次都希望有序列化的对象吗?
我们得到的例外是
信息:
2344462
基本属性:
(content-type = text / plain,content-encoding =,headers =,delivery-mode = 1,Priori
ty = 0,correlation-id =,reply-to =,expiration =,message-id =,timestamp =,typ
e =,用户ID =,应用ID =,集群ID = _)
例外:
EasyNetQ.EasyNetQInvalidMessageTypeException:消息类型不正确。期待
d'System_Byte []:mscorlib',但为”
有人可以帮忙吗?
最佳答案
EasyNetQ期望一个JSON序列化的UTF-8主体,该主体表示订阅方法中给出的.NET类型,并且基本属性的“ type”字段将填充EasyNetQ样式类型描述。
如果要自己进行反序列化,则应使用Advanced API。