2011-11-08 30 views
4

我使用stomp从Ruby写入消息给ActiveMQ。我在下面的例子中,在 http://calliopesounds.blogspot.com/2009/07/working-ruby-stomp-example.html使用ruby和stomp将消息写入ActiveMQ

,但我发现下面的错误,不知道什么是错的

/Library/Ruby/Gems/1.8/gems/stomp-1.1.10/lib/stomp/connection.rb:462:in `write': Invalid argument (Errno::EINVAL) 
    from /Library/Ruby/Gems/1.8/gems/stomp-1.1.10/lib/stomp/connection.rb:462:in `puts' 
    from /Library/Ruby/Gems/1.8/gems/stomp-1.1.10/lib/stomp/connection.rb:462:in `_transmit' 
    from /Library/Ruby/Gems/1.8/gems/stomp-1.1.10/lib/stomp/connection.rb:462:in `each' 
    from /Library/Ruby/Gems/1.8/gems/stomp-1.1.10/lib/stomp/connection.rb:462:in `_transmit' 
    from /Library/Ruby/Gems/1.8/gems/stomp-1.1.10/lib/stomp/connection.rb:445:in `synchronize' 
    from /Library/Ruby/Gems/1.8/gems/stomp-1.1.10/lib/stomp/connection.rb:445:in `_transmit' 
    from /Library/Ruby/Gems/1.8/gems/stomp-1.1.10/lib/stomp/connection.rb:427:in `transmit' 
    from /Library/Ruby/Gems/1.8/gems/stomp-1.1.10/lib/stomp/connection.rb:267:in `publish' 
    from /Library/Ruby/Gems/1.8/gems/stomp-1.1.10/lib/stomp/client.rb:200:in `publish' 
    from utils.rb:10 

这里是脚本

require 'rubygems' 
require 'stomp' 

queue = "/queue/msg.in" 

puts "Producer for queue #{queue}" 

client = Stomp::Client.open "stomp://localhost:61616" 
puts client 
client.publish queue, "hello!" 
client.close 

回答

5

这可能不是你确切问题,但由于代码扼杀发送它可能是类似的东西。

默认情况下,localhost:61616是AMQ代理监听openwire连接的地方。您是否更换经纪人xml config以在该端口上使用stomp? 该配置应该有一个条目,如:

<transportConnectors> 
    <transportConnector name="stomp" uri="stomp://localhost:61613"/> 
</transportConnectors>