Am having a weird problem
ActiveMQ is the messaging server and am using AMQP for sending messages
When I have both the publisher and subscriber in the same eclipse project. I can send send ObjectMessage and receive without any problem
But , when I split the subscriber and publisher to two different eclipse project, am getting
javax.jms.MessageNotReadableException: Message body is write-only
This is my Class of the object am sending
public class Test1 implements Serializable{
private String x;
public Test1( String x){
this.x = x;
}
}
And this is the exception
javax.jms.MessageNotReadableException: Message body is write-only
at org.apache.activemq.command.ActiveMQBytesMessage.checkWriteOnlyBody(ActiveMQBytesMessage.java:863)
at org.apache.activemq.command.ActiveMQBytesMessage.initializeReading(ActiveMQBytesMessage.java:868)
at org.apache.activemq.command.ActiveMQBytesMessage.getBodyLength(ActiveMQBytesMessage.java:190)
at org.apache.qpid.proton.jms.AMQPNativeOutboundTransformer.transform(AMQPNativeOutboundTransformer.java:63)
at org.apache.qpid.proton.jms.AutoOutboundTransformer.transform(AutoOutboundTransformer.java:37)
at org.apache.activemq.transport.amqp.AmqpProtocolConverter$ConsumerContext.pumpOutbound(AmqpProtocolConverter.java:751)
at org.apache.activemq.transport.amqp.AmqpProtocolConverter$ConsumerContext.onMessageDispatch(AmqpProtocolConverter.java:710)
at org.apache.activemq.transport.amqp.AmqpProtocolConverter.onActiveMQCommand(AmqpProtocolConverter.java:300)
at org.apache.activemq.transport.amqp.AmqpTransportFilter.oneway(AmqpTransportFilter.java:64)
at org.apache.activemq.broker.TransportConnection.dispatch(TransportConnection.java:1378)
at org.apache.activemq.broker.TransportConnection.processDispatch(TransportConnection.java:897)
at org.apache.activemq.broker.TransportConnection.iterate(TransportConnection.java:943)
at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:129)
at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:47)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:679)
This is the Code am following
This is supposed to be a bug in ActiveMQ with AMQ
This error happens under two reproducible conditions
The notable thing here is
This is in no way affects the message being transmitted. You will just see the exception but the data transport will work fine!!!