EasyNetQ无法从使用RabbitMQ Java Client API发布的队列中读取消息

时间:2013-08-08 10:36:21

标签: c# java .net rabbitmq easynetq

我们正在使用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',但是''

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

EasyNetQ期望一个JSON序列化的UTF-8正文表示订阅方法中给出的.NET类型,基本属性的“类型”字段将填充EasyNetQ样式类型描述。

如果要进行自己的反序列化,则应使用Advanced API。