【问题标题】:Azure Service Bus AMQP ExceptionAzure 服务总线 AMQP 异常
【发布时间】:2015-02-25 19:52:45
【问题描述】:

我使用来自此 url http://azure.microsoft.com/en-us/documentation/articles/service-bus-java-how-to-use-jms-api-amqp/ 的示例。我有两个问题:

1. ACS 或 SAS

连接 URL,

amqps://[username]:[password]@[namespace].servicebus.windows.net

用户名和密码来自 ACS 身份验证,但 Azure 服务总线已将其身份验证从 ACS 更改为 SAS。它还支持 SAS 身份验证吗?就像用户名是 SAS 策略一样,密码是 SAS 策略的密钥。

2。运行抛出异常

即使我使用 ACS(如果我使用 powershell 创建命名空间,它仍然是 ACS)或 SAS,当从 http://azure.microsoft.com/en-us/documentation/articles/service-bus-java-how-to-use-jms-api-amqp/ 运行示例代码时,它们都会抛出异常并失败。

Exception:"org.apache.qpid.amqp_1_0.client.Sender$SenderCreationException:
Peer did not create remote endpoint for link". 

有没有办法解决这个问题?

顺便说一句,我连接的不是 Windows 服务总线(本地),而是 Azure 服务总线(云)。谢谢。

【问题讨论】:

    标签: azure jms amqp servicebus


    【解决方案1】:

    回复:1. ACS 或 SAS

    是的,您可以将 SAS 与 AMQP 结合使用。策略名称而不是用户名,以及 URL 编码的密钥而不是密码。需要 URL 编码来处理键值中的任何非字母数字字符,如 +、/ 或 =。

    网址格式为:

    amqps://<policyname>:<urlencoded(key)>@<namespace>.servicebus.windows.net
    

    RE: 2. 运行抛出异常

    确保您的队列没有启用分区。 ServiceBus 不支持带有分区队列的 AMQP,但是创建队列时默认启用分区。

    我遇到了同样的错误,重新创建队列时未选中“启用分区”解决了它。

    请参阅本文底部的分区实体限制部分:https://msdn.microsoft.com/en-us/library/azure/dn520246.aspx

    分区队列和主题只能通过 SBMP 或 HTTP/HTTPS 使用。将来会添加 AMQP 支持。

    【讨论】:

      【解决方案2】:

      为了确定,您是否在服务总线命名空间内创建了名为“queue1”的队列。 来自你的教程:

      本指南假定您已经拥有一个服务总线命名空间 包含一个名为“queue1”的队列。

      保罗

      【讨论】:

      • 嗨 PPatierno,是的,我已经在所有命名空间中创建了一个名为“queue1”的队列。
      猜你喜欢
      • 2015-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-11
      • 1970-01-01
      • 1970-01-01
      • 2022-06-14
      • 1970-01-01
      相关资源
      最近更新 更多