Hi,
Okay, I wrote a bit of code to do the work for me. Please find it below :-)
Code:
import java.io.UnsupportedEncodingException;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.support.converter.MessageConversionException;
import org.springframework.amqp.support.converter.SimpleMessageConverter;
import org.springframework.stereotype.Component;
/**
* Convert ByteArrays to String.
*/
@Component("byteArrayToStringConverter")
public class ByteArrayToStringConverter extends SimpleMessageConverter {
private static final String DEFAULT_CHARSET = "UTF-8";
@Override
public Object fromMessage(final Message message) throws MessageConversionException {
final Object content = super.fromMessage(message);
try {
if (content instanceof byte[]) {
return new String((byte[])content, DEFAULT_CHARSET);
}
} catch (final UnsupportedEncodingException e) {
throw new MessageConversionException("failed to convert text-based Message content", e);
}
return content;
}
}
Then in my XML configuration of the inbound channel adaptor:
Code:
<int-amqp:inbound-channel-adapter channel="source" queue-names="messageQueue" connection-factory="cachingConnectionFactory" message-converter="byteArrayToStringConverter" />
-=bootlaces=-