I made all the changes and the code is working half way. With the gateway, I can send a message and the server picks it up and generates a reply. However, the gateway never picks up the reply and instead times out. I increased the receive-timeout but that had no impact. In fact, after several attempts, the reply queue had several messages in it so the gateway would not have had to wait at all to pick the first one off the queue.
Here is the relevant code:
Notice that I used transformer elements as opposed to marshalling-transformer, etc. The former I was already using on the server and the latter I did not know how to configure.Code:<gateway id="authenticationGateway" service-interface="com.xyz.MyAuthenticationGateway" default-request-channel="toMarshaller" /> <channel id="toMarshaller"/> <transformer id="object-to-xml" ref="marshaller" input-channel="toMarshaller" method="marshal" output-channel="jmsoutputchannel"/> <channel id="jmsoutputchannel" /> <jms:outbound-gateway request-channel="jmsoutputchannel" request-destination="requestJmsQueue" reply-channel="toUnmarshaller" reply-destination="replyJmsQueue"/> <channel id="toUnmarshaller" /> <transformer id="xml-to-object" ref="marshaller" input-channel="toUnmarshaller" method="unmarshal" />
Also, autowiring the gateway did not work, I had to use getBean on the application context.
Do you have any suggestions as to what I should try?