0

我正在尝试使用 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,两个查询都返回javax.management.InstanceNotFoundException。当我尝试检索其他队列时,它可以工作。当我这样做时destinationName=*,它会列出我的队列:

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

我应该如何/在 jolokia 查询中编码?

4

1 回答 1

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
于 2016-07-08T13:02:16.423 回答