使用curl时,ActiveMQ在队列名称中将`/`转换为`.`

时间:2013-09-27 21:02:43

标签: activemq

我的5.0.8 ActiveMQ队列名为queue/andburn。使用

curl -u admin:admin -d 'body="Aardvark"' "http://localhost:8161/api/message/queue/andburn?type=queue"

创建一个新队列queue.andburn。当我像/一样逃离\/时,我得到queue\.andburn。当我省略type=queue时,我看不到我的消息已添加到现有队列中。当我使用/来表示斜杠时也一样。

注意:所有转义都是在URI中的queue之后完成的,例如

"http://localhost:8161/api/message/queue\/andburn?type=queue"

ActiveMQ REST page无法解决此问题。

以下是curl --version

的输出
curl 7.24.0 (x86_64-apple-darwin12.0) libcurl/7.24.0 OpenSSL/0.9.8y zlib/1.2.5
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smtp smtps telnet tftp
Features: AsynchDNS GSS-Negotiate IPv6 Largefile NTLM NTLM_WB SSL libz

更新:使用RestClient gem通过Ruby脚本向ActiveMQ发送请求时也会发生这种情况。

2 个答案:

答案 0 :(得分:0)

转义网址通常由percent encoding完成。因此,在您的情况下,斜杠将是%2F

http://localhost:8161/api/message/queue%2Fandburn?type=queue

我没有使用CURL和ActiveMQ对此进行测试,但这是在URI中表示斜杠的最自然方式。

答案 1 :(得分:0)

我今天遇到了这个问题,做了一个较小的搜索。我使用ActiveMQ版本5.15.11。可以here找到对我有用的解决方案。我只是使用了替代产生语法。只需http://127.0.0.1:8161/api/message?type=queue&destination=My.Queue.With/Slash(而不是在../message.queue/{queue_name}之后给出队列名称)