【问题标题】:EasyNetQ not reading messages from queue published with RabbitMQ Java Client APIEasyNetQ 未从使用 RabbitMQ Java 客户端 API 发布的队列中读取消息
【发布时间】:2013-08-08 10:36:21
【问题描述】:

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

消息是一个字符串。

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

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

我们得到的例外是

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

例外: EasyNetQ.EasyNetQInvalidMessageTypeException:消息类型不正确。期待 d 'System_Byte[]:mscorlib',但是是 ''

有人可以帮忙吗?

【问题讨论】:

    标签: c# java .net rabbitmq easynetq


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-01
      • 2012-03-18
      • 1970-01-01
      • 2011-04-27
      • 1970-01-01
      • 2019-12-02
      相关资源
      最近更新 更多