2016-07-07 19 views
0

Ich versuche, die Warteschlange Größe einer bestimmten Warteschlange mit Jolokia-Schnittstelle von ActiveMQ abrufen. Der Name meiner Warteschlange ist /some/queue und wegen der Schrägstriche kann ich nicht die API richtig funktionieren.ActiveMQ Jolokia Queue Name mit Schrägstrichen

Hier ist, was ich versucht:

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 

One mit nicht codierten / und das andere mit codierten zu %2F, beide Abfragen geben javax.management.InstanceNotFoundException. Wenn ich versuche, andere Warteschlangen abzurufen, funktioniert es. Wenn ich destinationName=* tun listet es meine Warteschlange:

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

Wie soll ich / in jolokia Anfragen kodieren?

Antwort

0

Gefunden, um zu entkommen / in Jolokia Queue Namen muss man ! vor Schrägstrich verwenden (Quelle https://jolokia.org/reference/html/protocol.html#escape-rules).

Also die richtige ROTATION hierfür ist (in bash ! mit \ entgangen sein):

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