我们正在使用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。

07-24 20:47