通过HornetQ的REST接口推送消息

时间:2012-09-28 09:49:33

标签: hornetq

我正在使用Hornetq 2.2.5版本的REST接口,作为JBoss-4.2.1 GA应用服务器的JMS提供者运行。我已成功部署了.war,它具有HornetQ REST消息传递接口。我可以使用应用程序的资源正确发送消息。现在,我正在尝试将消息推送到远程REST资源,因此我发送了一个HEAD请求,获得了msg-push-consumers标头并发送了以下POST请求:

<push-registration>  
   <link href="http://remotehost:8081/TestREST/webresources/test" method="PUT" />
</push-registration>

我查看了JBoss日志并阅读:

  

18:04:20,953 INFO [PushConsumer]推动消费者开始:   XmlLink {className ='null',rel ='null',   href ='http:// remotehost:8081 / TestREST / webresources / test',type ='null',   方法= 'PUT'}

但是,当我尝试向队列发送JMS测试消息时,我得到以下异常:

  

18:07:08,234 ERROR [ClientConsumerImpl]无法调用onMessage()   java.lang.IndexOutOfBoundsException             在org.jboss.netty.buffer.AbstractChannelBuffer.checkReadableBytes(AbstractChannelBuffer.java:657)             在org.jboss.netty.buffer.AbstractChannelBuffer.readBytes(AbstractChannelBuffer.java:337)             在org.jboss.netty.buffer.AbstractChannelBuffer.readBytes(AbstractChannelBuffer.java:343)             在org.hornetq.core.buffers.impl.ChannelBufferWrapper.readBytes(ChannelBufferWrapper.java:347)             在org.hornetq.rest.util.HttpMessageHelper.buildMessage(HttpMessageHelper.java:97)             在org.hornetq.rest.queue.push.UriStrategy.push(UriStrategy.java:82)             在org.hornetq.rest.queue.push.PushConsumer.onMessage(PushConsumer.java:114)             在org.hornetq.core.client.impl.ClientConsumerImpl.callOnMessage(ClientConsumerImpl.java:866)             在org.hornetq.core.client.impl.ClientConsumerImpl.access $ 100(ClientConsumerImpl.java:44)             在org.hornetq.core.client.impl.ClientConsumerImpl $ Runner.run(ClientConsumerImpl.java:983)             at org.hornetq.utils.OrderedExecutorFactory $ OrderedExecutor $ 1.run(OrderedExecutorFactory.java:100)             at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)             at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:603)             在java.lang.Thread.run(Thread.java:722)

你有任何想法解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

您可以先试用最新版本吗?有几处变化。我建议2.2.14

然后我们可以研究一个可能的错误。我们需要一个复制器来解决您的问题。