package com.moral.util; import java.io.UnsupportedEncodingException; import java.util.Map; import org.springframework.amqp.core.Message; import org.springframework.amqp.core.MessageProperties; import org.springframework.amqp.support.converter.AbstractMessageConverter; import org.springframework.amqp.support.converter.MessageConversionException; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.TypeReference; public class MessageConverter extends AbstractMessageConverter { public static final String DEFAULT_CHARSET = "UTF-8"; @Override protected Message createMessage(Object objectToConvert, MessageProperties messageProperties) throws MessageConversionException { byte[] bytes = null; try { String jsonString = JSON.toJSONString(objectToConvert); bytes = jsonString.getBytes(DEFAULT_CHARSET); } catch (UnsupportedEncodingException e) { throw new MessageConversionException("Failed to convert Message content", e); } messageProperties.setContentType(MessageProperties.CONTENT_TYPE_JSON); messageProperties.setContentEncoding(DEFAULT_CHARSET); if (bytes != null) { messageProperties.setContentLength(bytes.length); } return new Message(bytes, messageProperties); } @Override public Object fromMessage(Message msg) throws MessageConversionException { String message = null; try { message = new String(msg.getBody(), DEFAULT_CHARSET); } catch (UnsupportedEncodingException e) { } return JSON.parseObject(message, new TypeReference>() {}); } }