2016-07-07 3 views
0

ActiveMQ의 jolokia 인터페이스를 사용하여 지정된 대기열의 대기열 크기를 검색하려고합니다. 내 대기열 이름은 /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을 반환합니다. 다른 대기열을 검색하려고하면 제대로 작동합니다. jolokia 쿼리에서

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

가 어떻게 인코딩해야 / : 나는 destinationName=*을 수행 할 때 내 큐를 나열?

답변

0

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 
관련 문제