2016-07-07 2 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 
    }, 

Как я должен кодировать / в Jolokia запросов?

ответ

0

Найденный, чтобы избежать / в именах очереди jolokia, необходимо использовать ! перед косой чертой (источник https://jolokia.org/reference/html/protocol.html#escape-rules).

Так правильно CURL для этого (в Баш ! должен быть экранирован \):

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 
Смежные вопросы