我正在使用 Hornetq 2.2.5 版本的 REST 接口,作为 JBoss-4.2.1 GA 应用服务器的 JMS 提供程序运行。我已经成功部署了一个具有 HornetQ REST 消息接口的 .war。我可以使用应用程序的资源正确发送消息。现在,我正在尝试将消息推送到远程 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 错误 [ClientConsumerImpl] 无法在 org.jboss.netty.buffer.AbstractChannelBuffer.checkReadableBytes(AbstractChannelBuffer.java:657) 在 org.jboss.netty.buffer.AbstractChannelBuffer 调用 onMessage() java.lang.IndexOutOfBoundsException。 readBytes(AbstractChannelBuffer.java:337) at org.jboss.netty.buffer.AbstractChannelBuffer.readBytes(AbstractChannelBuffer.java:343) at org.hornetq.core.buffers.impl.ChannelBufferWrapper.readBytes(ChannelBufferWrapper.java:347) at 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) at org.hornetq.core.client.impl.ClientConsumerImpl.access$100(ClientConsumerImpl.java:44) at 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)983) 在 org.hornetq.utils.OrderedExecutorFactory$OrderedExecutor$1.run(OrderedExecutorFactory.java:100) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 在 java.util.concurrent.ThreadPoolExecutor$Worker。在 java.lang.Thread.run(Thread.java:722) 处运行(ThreadPoolExecutor.java:603)983) 在 org.hornetq.utils.OrderedExecutorFactory$OrderedExecutor$1.run(OrderedExecutorFactory.java:100) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 在 java.util.concurrent.ThreadPoolExecutor$Worker。在 java.lang.Thread.run(Thread.java:722) 处运行(ThreadPoolExecutor.java:603)
你有什么想法来解决这个问题吗?