我们正在使用Coldfusion利用java RabbitMQ客户端API将消息发布到队列,然后使用EasyNetQ使用C#从队列中读取消息。
消息是一个字符串。
java客户端将消息发布为具有text / plain内容类型的非集成bytearray。
当我们尝试从队列中读取消息时,无论EasyNetQ端定义的消息类型如何,我们总是会抛出EasyNetQ.EasyNetQInvalidMessageTypeException。我已经尝试过它作为字节数组而只是一个基本对象。我认为EasyNetQ每次都期待一个序列化的对象?
我们得到的例外是
消息: 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 = _)
例外: EasyNetQ.EasyNetQInvalidMessageTypeException:消息类型不正确。教人口会 d'System_Byte []:mscorlib',但是''
有人可以帮忙吗?
答案 0 :(得分:1)
EasyNetQ期望一个JSON序列化的UTF-8正文表示订阅方法中给出的.NET类型,基本属性的“类型”字段将填充EasyNetQ样式类型描述。
如果要进行自己的反序列化,则应使用Advanced API。