1
我使用ruby stomp gem將消息發送給ActiveMQ。數據以Base64編碼形式存儲,而不是以文本的形式存儲,這與我使用XPath選擇器的能力有關!當通過STOMP發送時,ActiveMQ將消息存儲在Base64中?
我已經證實,在碼頭內使用「發送」功能,我可以將非Base64編碼文本發送到同一個隊列。
有關如何阻止這種情況發生的任何建議?
我的測試代碼:
require 'stomp'
stomp = {
:hosts => [{:host => 'localhost', :port => 61613}]
}
client = Stomp::Client.new(stomp)
queue = "/queue/test"
xml = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<test>xml</test>"
client.publish(queue,xml,{
:'content-type' => 'application/xml',
:persistent => true
})
然後我就可以訪問ActiveMQ的演示,看看有什麼實際存儲:
http://127.0.0.1:8161/demo/queueBrowse/test?view=xml
輸出:
<messages queue="queue://test">
<!-- snip -->
<content>
<data>PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiID8+Cjx0ZXN0PnhtbDwvdGVzdD4A AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAA=</data>
<offset>0</offset>
<length>56</length>
</content>
<!-- snip -->
</messages>
我一直在挖掘這一段時間,它看起來好像Ruby STOMP gem自動添加內容長度標題字段。 [This ActiveMQ](http://activemq.apache.org/stomp.html)文檔頁面指出,包含內容長度頭文件會通知activeMQ STOMP連接器該消息應該是BytesMessage(而不是TextMessage) - 我要檢查這個並在這裏發帖 – 2013-02-20 15:26:48