Имя очереди ActiveMQ jolokia с косой чертой

Я пытаюсь получить размер очереди данной очереди, используя интерфейс jolokia ActiveMQ. Имя моей очереди /some/queue, и из-за косых черт я не могу заставить API работать правильно.

Вот что я пробовал:

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?


person Krzysztof Krasoń    schedule 07.07.2016    source источник


Ответы (1)


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

Итак, правильный CURL для этого (в 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
person Krzysztof Krasoń    schedule 08.07.2016