我正在使用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)
你有任何想法解决这个问题吗?
答案 0 :(得分:1)
您可以先试用最新版本吗?有几处变化。我建议2.2.14
然后我们可以研究一个可能的错误。我们需要一个复制器来解决您的问题。