
[英]Problem connecting to Azure service bus using apache qpid-client
[英]NumberFormatException in connecting Azure Service Bus using Managed Identity
我正在尝试使用托管身份从我的网络作业连接到 Azure 服务总线。 但不幸的是,我收到以下错误
com.google.gson.JsonSyntaxException: java.lang.NumberFormatException: For input string: "10/10/2020 6:50:38 AM +00:00"
我已启用身份并分配了参与者角色以连接到服务总线。 此外,在代码中,我使用 ClientSettings 创建与服务总线的连接。
ClientFactory.createMessageReceiverFromEntityPathAsync(namespace, queueName,new ClientSettings(TokenProvider.createManagedServiceIdentityTokenProvider()), ReceiveMode.RECEIVEANDDELETE).get();
知道如何解决此异常,因为它是从内置 class ManagedServiceIdentityTokenProvider抛出的。 任何帮助都会非常有帮助。
提前致谢。
编辑 -我将服务总线 package 更新为 3.2.0。 现在我看不到 NumberFormatException 但我得到java.lang.RuntimeException: java.net.SocketException: Permission denied: connect
即使我已经为 webjob 提供了“所有者”角色。
如果要将 Azure 服务总线与 Azure 托管标识连接,我们需要为 MSI 分配一些特殊角色( Azure 服务总线数据所有者、 Azure 服务总线数据发送方和Azure 服务总线数据接收方)。 有关详细信息,请参阅此处。
例如
向 MSI 分配角色
代码
public static void main( String[] args )
{
IMessageReceiver receiver = null;
try {
receiver= ClientFactory.createMessageReceiverFromEntityPathAsync("bowman1012",
"myqueue",
new ClientSettings(TokenProvider.createManagedIdentityTokenProvider()),
ReceiveMode.PEEKLOCK).get();
IMessage message = receiver.receiveAsync().get();
String content = new String(message.getBody(), UTF_8);
System.out.println(content);
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}finally {
Boolean f= receiver.closeAsync().complete(null);
System.out.println(f);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.