I've pulled the source for the latest spring integration examples and am having trouble with the last of four steps. The demo creates 100 drink orders and puts them onto a RabbitMQ queue. I can see that these have been created through the rabbitmq administration panel.
The last step of the cafe-amqp demo is to run CafeDemoAppOperationsAmqp. What I am encountering is an error processing the payload of the message in the AmqpInboundChannelAdapter, which has the payload as an array of bytes. This might not be a problem; perhaps the payload is always an array of bytes. But when the payload is being transformed by the AbstractPayloadTransformer, an exception is thrown because the transformer wants a string instead of a byte array.
The partial stack is shown below:
I suppose I will inject my own transformer before the JsonToObjectTransformer is invoked to change the bytes to a string, but I'm sure there must be something wrong for this to happen.Caused by: java.lang.ClassCastException: [B cannot be cast to java.lang.String
at org.springframework.integration.json.JsonToObjectT ransformer.transformPayload(JsonToObjectTransforme r.java:30)
at org.springframework.integration.transformer.Abstra ctPayloadTransformer.doTransform(AbstractPayloadTr ansformer.java:33)
at org.springframework.integration.transformer.Abstra ctTransformer.transform(AbstractTransformer.java:3 3)