2016-11-07 52 views
0

我想要在java中獲取activeMQ隊列的所有名稱,我發現了幾個主題herehere關於該問題以及人們建議使用我無法導入的DestinationSource在Eclipse中編寫代碼時。我試過了:在java中獲取activemq的所有隊列名稱

import org.apache.activemq.advisory.DestinationSource; 

我使用java 1.7和最新的activemq版本5.14.1。任何觀點,如果destinationsource仍然支持或不支持? 謝謝,

回答

0

ActiveMQ項目中仍然支持該功能,但需要注意的是,它可能並不總是基於here的註釋工作。如果您在代理上啓用了諮詢支持,那麼它應該爲您提供一些對存在目標的洞察,儘管JMX會爲您提供更多的目標管理。

unit tests顯示您可以引用的DestinationSource功能。您需要將'activemq-client'jar放在類路徑中,因此您的IDE項目可能沒有正確配置。

0

處理這些信息的最簡單方法是使用默認安裝的Jolokia。要做到這一點,使用HTTP客戶端發出GET請求以下URI之一:

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

您需要在JMX用戶名和密碼來傳遞(默認:行政/管理)作爲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 "" 

有關如何使用API​​的椒,指the documentation一個很好的解釋。

相關問題