从activeMQ获取所有队列

Ana*_*mar 1 java activemq-classic

我是activeMQ 的新手。我需要编写代码来获取所有队列并读取消息。我没有找到像 get all Queues 这样的 API。如何从ActiveMQ读取队列。如果可能,一些示例会有所帮助。

p u*_*ran 5

java中获取ActiveMQ中的所有队列。

pom.xml 中添加以下 Maven 依赖项

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jms</artifactId>
    <version>4.3.2.RELEASE</version>
</dependency>  

<dependency>
    <groupId>org.apache.activemq</groupId>
    <artifactId>activemq-spring</artifactId>
    <version>5.14.0</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

您可以将tcp://localhost:61616/更改为tcp://180.50.50.10:61616/运行 activemq 服务的地方。

Java代码:

try {
    ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616/");

    ActiveMQConnection connection = (ActiveMQConnection) connectionFactory.createConnection();
    DestinationSource ds = connection.getDestinationSource();

    connection.start();

    Set<ActiveMQQueue> queues = ds.getQueues();

    for (ActiveMQQueue activeMQQueue : queues) {
        try {
            System.out.println(activeMQQueue.getQueueName());
        } catch (JMSException e) {
            e.printStackTrace();
        }
    }
    connection.close();
} catch (Exception e) {
    e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

控制台输出:

HtmlQueue
emaildewsgmc
pdfdirectinpirepscli
pdfdirectinpirecli
InQueue
ReceiveQueue
NormalPriorityQueue
emaildirecthp
pdfdewsgmc
pdfdirecthp
Send2Recv
SaveQueue
LowPriorityQueue
emaildewshp
HighPriorityQueue
PdfQueue
AnotherDest
pdfdewshp
emaildirectgmc
Run Code Online (Sandbox Code Playgroud)