gpt4 book ai didi

Java 8 Azure 服务总线队列上的消息数

转载 作者:行者123 更新时间:2023-12-03 02:00:36 25 4
gpt4 key购买 nike

我想获取 Java 8 中 Azure 服务总线队列上的消息数。我尝试了一些方法,但是当我想导入这些库时,我的 Maven 找不到正确的库(jar),就像看起来一样:

import com.microsoft.azure.credentials.ApplicationTokenCredentials;
import com.microsoft.azure.management.Azure;
import com.microsoft.azure.management.servicebus.Queue;
import com.microsoft.azure.management.servicebus.ServiceBusNamespace;
import com.microsoft.rest.LogLevel;

我需要什么库?你们有一个 helloWorld 示例来使用 Java 获取队列上的消息数量吗?

到目前为止,我已经有了这个,但我的导入都给出了错误:

ApplicationTokenCredentials credentials = new ApplicationTokenCredentials(clientId, domain, secret, AzureEnvironment.AZURE);
Azure azure = Azure.configure().withLogLevel(LogLevel.NONE).authenticate(credentials).withSubscription(subscriptionId);

ServiceBusNamespace serviceBusNamespace = azure.serviceBusNamespaces().getByResourceGroup(resourceGroupName, namespaceName);
Queue queue = serviceBusNamespace.queues().getByName(queueName);
int messageCount = queue.inner().messageCount();

System.out.println("Message count: " + messageCount);

无论如何,这段代码可以吗?

最佳答案

通过下面的java代码,我能够获取Java 8中Azure服务总线队列上的消息数量。

我在我的环境中使用 java 8 创建了一个新的 java, maven 项目,如下所示:-

enter image description here

代码:

import com.microsoft.azure.AzureEnvironment;
import com.microsoft.azure.credentials.ApplicationTokenCredentials;
import com.microsoft.azure.management.Azure;
import com.microsoft.azure.management.servicebus.Queue;
import com.microsoft.azure.management.servicebus.ServiceBusNamespace;
import com.microsoft.rest.LogLevel;

public class ServiceBusQueueExample {
public static void main(String[] args) throws Exception {
String clientId = "<your_client_id>";
String domain = "<your-tenant_id>";
String secret = "<>your_client_secret>";
String subscriptionId = "<your_subscription_id>";
String resourceGroupName = "your_resource_group_name";
String namespaceName = "<your_servicebus_name>";
String queueName = "<your_queue_name>";

ApplicationTokenCredentials credentials = new ApplicationTokenCredentials(clientId, domain, secret, AzureEnvironment.AZURE);
Azure azure = Azure.configure().withLogLevel(LogLevel.NONE).authenticate(credentials).withSubscription(subscriptionId);

ServiceBusNamespace serviceBusNamespace = azure.serviceBusNamespaces().getByResourceGroup(resourceGroupName, namespaceName);
Queue queue = serviceBusNamespace.queues().getByName(queueName);
long messageCount = queue.inner().messageCount();

System.out.println("Message count: " + messageCount);
}
}

依赖关系:

<dependencies>
<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>azure</artifactId>
<version>1.41.4</version>
</dependency>
</dependencies>

确保将客户端应用程序角色分配分配为所有者

enter image description here

在 Azure 门户中,我的 ServiceBus 队列中有 10 条消息,如下所示:-

enter image description here

它成功运行并给出了 Azure 服务总线队列上的消息数。请参阅以下内容:-

输出:
enter image description here

引用:
检查这个MS Doc了解有关向 Azure 服务总线发送消息的更多信息。

关于Java 8 Azure 服务总线队列上的消息数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76273015/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com