带斜杠的 ActiveMQ jolokia 队列名称
ActiveMQ jolokia queue name with slashes
我正在尝试使用 ActiveMQ 的 jolokia 接口检索给定队列的队列大小。我的队列名称是 /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
,两个查询 return javax.management.InstanceNotFoundException
。
当我尝试检索其他队列时它起作用了。当我执行 destinationName=*
时,它会列出我的队列:
"org.apache.activemq:brokerName=localhost,destinationName=/some/queue,destinationType=Queue,type=Broker": {
"QueueSize": 0
},
我应该如何在 jolokia 查询中编码 /
?
找到了,要在 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
我正在尝试使用 ActiveMQ 的 jolokia 接口检索给定队列的队列大小。我的队列名称是 /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
,两个查询 return javax.management.InstanceNotFoundException
。
当我尝试检索其他队列时它起作用了。当我执行 destinationName=*
时,它会列出我的队列:
"org.apache.activemq:brokerName=localhost,destinationName=/some/queue,destinationType=Queue,type=Broker": {
"QueueSize": 0
},
我应该如何在 jolokia 查询中编码 /
?
找到了,要在 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