我正在尝试创建一个简单的 SpringBoot 应用程序来接收来自服务总线的消息,但是当我尝试连接 DefaultAzureCredentialBuilder 时,我收到此错误:
Failed to create receive link test_cd989b_1701894453220
status-code: 401, status-description: InvalidIssuer: Token issuer is invalid.
TrackingId:fbfe2a23-dec8-4d1f-b695-4ce9548b8c9a_G31, SystemTracker:NoSystemTracker,
Timestamp:2023-12-06T20:27:37, errorContext[NAMESPACE: -. ERROR CONTEXT: N/A, PATH: $cbs, REFERENCE_ID:
cbs:receiver, LINK_CREDIT: 0]
这是我正在使用的代码:
public ServiceBusReceiverAsyncClient getSBAsyncClient() {
ServiceBusReceiverAsyncClient asyncReceiver = new ServiceBusClientBuilder()
.credential("-", credential)
.receiver()
.disableAutoComplete()
.queueName("test")
.buildAsyncClient();
Disposable subscription = asyncReceiver.receiveMessages()
.flatMap(message -> {
System.out.printf("Received Seq #: %s%n", message.getSequenceNumber());
System.out.printf("Contents of message as string: %s%n", message.getBody());
// Explicitly settle the message using complete, abandon, defer, dead-letter, etc.
return asyncReceiver.complete(message);
})
.subscribe(unused -> {
}, error -> System.out.println("Error occurred: " + error),
() -> System.out.println("Receiving complete."));
return asyncReceiver;
}
您是否尝试过显式定义环境变量 AZURE_TENANT_ID、AZURE_CLIENT_ID 和 AZURE_CLIENT_SECRET。 DefaultAzureCredentialBuilder 尝试各种身份验证源来尝试找到有效的配置,包括来自 IDE 和平台密钥存储的配置。