Java Reference
In-Depth Information
package com.apress.springenterpriserecipes.post;
import javax.jms.JMSException;
import javax.jms.MapMessage;
import javax.jms.Message;
import javax.jms.Session;
import org.springframework.jms.support.converter.MessageConversionException;
import org.springframework.jms.support.converter.MessageConverter;
public class MailMessageConverter implements MessageConverter {
public Object fromMessage(Message message) throws JMSException,
MessageConversionException {
MapMessage mapMessage = (MapMessage) message;
Mail mail = new Mail();
mail.setMailId(mapMessage.getString("mailId"));
mail.setCountry(mapMessage.getString("country"));
mail.setWeight(mapMessage.getDouble("weight"));
return mail;
}
public Message toMessage(Object object, Session session) throws JMSException,
MessageConversionException {
Mail mail = (Mail) object;
MapMessage message = session.createMapMessage();
message.setString("mailId", mail.getMailId());
message.setString("country", mail.getCountry());
message.setDouble("weight", mail.getWeight());
return message;
}
}
To apply this message converter, you have to declare it in both bean configuration files and inject it
into the JMS template.
<beans ...>
...
<bean id="mailMessageConverter"
class="com.apress.springenterpriserecipes.post.MailMessageConverter" />
<bean id="jmsTemplate"
class="org.springframework.jms.core.JmsTemplate">
...
<property name="messageConverter" ref="mailMessageConverter" />
</bean>
</beans>
Search WWH ::




Custom Search