我使用这个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服务总线已将其auth从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服务总线(Cloud)。谢谢。
发布于 2015-01-20 22:42:23
重新: 1. ACS或SAS
是的,您可以在AMQP中使用SAS。策略名代替用户名,URL编码密钥代替密码。需要使用URL编码来处理键值为+、/或=的任何非字母数字字符。
URL格式是:
amqps://<policyname>:<urlencoded(key)>@<namespace>.servicebus.windows.netRE: 2.运行抛出异常
确保队列没有启用分区。ServiceBus不支持带分区队列的AMQP,但是创建队列时默认启用分区。
我也犯了同样的错误,然后用“启用分区”重新创建队列,没有检查它。
请参阅本文底部的分区实体限制部分:https://msdn.microsoft.com/en-us/library/azure/dn520246.aspx
分区队列和主题只能通过SBMP或HTTP/HTTPS获得。AMQP支持将在未来增加。
发布于 2015-01-02 11:50:16
为了确保,您是否在服务总线命名空间中创建了名为queue1的队列。来自您的教程:
本指南假设您已经有一个服务总线命名空间,其中包含一个名为“queue1”的队列。
保罗
https://stackoverflow.com/questions/27692070
复制相似问题