diff --git a/support/src/main/java/org/springframework/ws/transport/jms/JmsSenderConnection.java b/support/src/main/java/org/springframework/ws/transport/jms/JmsSenderConnection.java index ea00312f..475819b4 100644 --- a/support/src/main/java/org/springframework/ws/transport/jms/JmsSenderConnection.java +++ b/support/src/main/java/org/springframework/ws/transport/jms/JmsSenderConnection.java @@ -228,7 +228,7 @@ public class JmsSenderConnection extends AbstractSenderConnection { if (message instanceof BytesMessage || message instanceof TextMessage) { responseMessage = message; } - else { + else if (message != null) { throw new IllegalArgumentException( "Wrong message type: [" + message.getClass() + "]. Only BytesMessages can be handled."); } diff --git a/support/src/test/java/org/springframework/ws/transport/jms/JmsMessageSenderIntegrationTest.java b/support/src/test/java/org/springframework/ws/transport/jms/JmsMessageSenderIntegrationTest.java index b7af52a3..8b7384b0 100644 --- a/support/src/test/java/org/springframework/ws/transport/jms/JmsMessageSenderIntegrationTest.java +++ b/support/src/test/java/org/springframework/ws/transport/jms/JmsMessageSenderIntegrationTest.java @@ -135,4 +135,27 @@ public class JmsMessageSenderIntegrationTest extends AbstractDependencyInjection } } + public void testSendNoResponse() throws Exception { + WebServiceConnection connection = null; + try { + URI uri = new URI("jms:SenderRequestQueue?deliveryMode=NON_PERSISTENT"); + connection = messageSender.createConnection(uri); + SoapMessage soapRequest = new SaajSoapMessage(messageFactory.createMessage()); + soapRequest.setSoapAction(SOAP_ACTION); + connection.send(soapRequest); + + BytesMessage request = (BytesMessage) jmsTemplate.receive(); + assertNotNull("No message received", request); + ByteArrayOutputStream bos = new ByteArrayOutputStream(); + messageFactory.createMessage().writeTo(bos); + SoapMessage response = (SoapMessage) connection.receive(new SaajSoapMessageFactory(messageFactory)); + assertNull("Response received", response); + } + finally { + if (connection != null) { + connection.close(); + } + } + } + } \ No newline at end of file diff --git a/support/src/test/resources/org/springframework/ws/transport/jms/jms-sender-applicationContext.xml b/support/src/test/resources/org/springframework/ws/transport/jms/jms-sender-applicationContext.xml index 5e24376e..24d59f16 100644 --- a/support/src/test/resources/org/springframework/ws/transport/jms/jms-sender-applicationContext.xml +++ b/support/src/test/resources/org/springframework/ws/transport/jms/jms-sender-applicationContext.xml @@ -17,6 +17,7 @@ + \ No newline at end of file