JmsOutboundGateway now builds a copy of the request Message prior to sending since non-serializable header values will be removed when a JMS ObjectMessage is propagated.

This commit is contained in:
Mark Fisher
2008-10-17 15:24:31 +00:00
parent 55eb3ae05d
commit 8df8a51810

View File

@@ -27,6 +27,7 @@ import javax.jms.Session;
import org.springframework.integration.core.Message;
import org.springframework.integration.endpoint.AbstractReplyProducingMessageConsumer;
import org.springframework.integration.endpoint.ReplyMessageHolder;
import org.springframework.integration.message.MessageBuilder;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.jms.core.SessionCallback;
import org.springframework.jms.support.converter.MessageConverter;
@@ -56,7 +57,8 @@ public class JmsOutboundGateway extends AbstractReplyProducingMessageConsumer {
}
@Override
protected void onMessage(final Message<?> requestMessage, final ReplyMessageHolder replyMessageHolder) {
protected void onMessage(final Message<?> message, final ReplyMessageHolder replyMessageHolder) {
final Message<?> requestMessage = MessageBuilder.fromMessage(message).build();
this.jmsTemplate.execute(new SessionCallback() {
public Object doInJms(Session session) throws JMSException {
Assert.state(session instanceof QueueSession,