2016-07-07 54 views
0

我試圖檢索使用jolokia界面的ActiveMQ給定隊列的隊列大小。我的隊列名稱是/some/queue,並且由於斜線,我無法使API正常工作。ActiveMQ jolokia隊列名稱與斜槓

這裏是我的嘗試:

curl -XGET --user admin:admin "http://localhost:8161/api/jolokia/read/org.apache.activemq:brokerName=localhost,destinationName=/some/queue,destinationType=Queue,type=Broker/QueueSize" | python -m json.tool 

curl -XGET --user admin:admin "http://localhost:8161/api/jolokia/read/org.apache.activemq:brokerName=localhost,destinationName=%2Fsome%2Fqueue,destinationType=Queue,type=Broker/QueueSize" | python -m json.tool 

一個不帶編碼/和其他與編碼爲%2F,兩個查詢返回javax.management.InstanceNotFoundException。 當我嘗試檢索其他隊列它的作品。當我做destinationName=*它列出了我的隊列:

"org.apache.activemq:brokerName=localhost,destinationName=/some/queue,destinationType=Queue,type=Broker": { 
     "QueueSize": 0 
    }, 

我應該如何編碼在椒查詢/

回答

0

發現它,要逃脫/在jolokia隊列名稱必須使用!在斜線(源https://jolokia.org/reference/html/protocol.html#escape-rules)。

因此,對於這個正確的捲曲(在bash !必須與\進行轉義):

curl -XGET --user admin:admin "http://localhost:8161/api/jolokia/read/org.apache.activemq:brokerName=localhost,destinationName=\!/some\!/queue,destinationType=Queue,type=Broker/QueueSize" | python -m json.tool