获取java

时间:2016-11-07 21:39:08

标签: activemq

我试图在java中获取activeMQ队列的所有名称,我找到了几个主题herehere,并且人们建议使用DestinationSource我在我编写代码时,无法在Eclipse中导入。我试过了:

import org.apache.activemq.advisory.DestinationSource;

我使用的是java 1.7和最新的activemq版本5.14.1。是否仍然支持目标源的任何想法? 谢谢,

2 个答案:

答案 0 :(得分:1)

获取此信息的最简单方法是使用默认情况下安装的Jolokia。为此,请使用HTTP客户端向以下URI之一发出GET请求:

http://localhost:8161/api/jolokia/search/*:destinationType=Queue,*
http://localhost:8161/api/jolokia/search/*:destinationType=Topic,*

您需要传递JMX用户名和密码(默认值:admin / admin)作为HTTP请求的一部分。系统将回应以下内容:

{ 
  "request" : { 
    "mbean" : "*:destinationType=Queue,*",
    "type" : "search"
  },
  "status" : 200,
  "timestamp" : 1478615354,
  "value" : [ 
    "org.apache.activemq:brokerName=localhost,destinationName=systemX.bar,destinationType=Queue,type=Broker",
    "org.apache.activemq:brokerName=localhost,destinationName=systemX.foo,destinationType=Queue,type=Broker",
    "org.apache.activemq:brokerName=localhost,destinationName=ActiveMQ.DLQ,destinationType=Queue,type=Broker"
  ]
}

以上显示了队列systemX.foosystemX.barActiveMQ.DLQ。以下是使用curl命令的示例:

curl -u admin http://localhost:8161/api/jolokia/search/*:destinationType=Queue,* && echo ""

有关如何使用Jolokia API的详细说明,请参阅the documentation

答案 1 :(得分:0)

ActiveMQ项目仍然支持该功能,但需要注意的是,根据已经给出here的评论,它可能并不总是有效。如果您在Broker上启用了咨询支持,那么它应该为您提供对存在的目的地的一些了解,尽管JMX会为您提供更多的目的地管理。

unit tests显示您可以参考的DestinationSource功能。您需要将'activemq-client'jar放在类路径中,这样您的IDE项目可能没有正确配置。