我的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发送请求时也会发生这种情况。
答案 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}之后给出队列名称)