RabbitMQ version 3
org.springframework.amqp 1.0.0.RELEASE
Hi, I am new to spring and amqp and I have an error in a project.
First here is the code that puts the value in the org.springframework.amqp.core.MessageProperties
Code:public final void sendClientUpdates(final String queueName, final String textMessage, final Object updateIds, final String replyUrl) { MessageProperties messageProperties = new MessageProperties(); ByteArrayOutputStream output = new ByteArrayOutputStream(); XMLEncoder encoder = new XMLEncoder(output); encoder.writeObject(updateIds); try { encoder.close(); output.close(); } catch (IOException ex) { logger.warn("", ex); } messageProperties.setHeader(UPDATE_ID_PROPERTY, output.toString());
When reading the message from the queue
I get aCode:public void onMessage(final Message message) { Map<String, Object> headers = message.getMessageProperties().getHeaders(); XMLDecoder decoder = new XMLDecoder( new ByteArrayInputStream(((String) headers.get(UPDATE_ID_PROPERTY)).getBytes()));
java.lang.ClassCastException: java.io.DataInputStream cannot be cast to java.lang.String
Suddenly UPDATE_ID_PROPERTY is a java.io.DataInputStream.
This does not happen all the time... but very often.
The UPDATE_ID_PROPERTY would normally look like this
UPDATE_ID_PROPERTY : <?xml version="1.0" encoding="UTF-8"?>
<java version="1.7.0_13" class="java.beans.XMLDecoder">
<object class="java.util.ArrayList">
<void method="add">
<long>162</long>
</void>
</object>
</java>


Reply With Quote