diff --git a/org.springframework.integration.samples/src/main/java/org/springframework/integration/samples/ws/temperatureConversion.xml b/org.springframework.integration.samples/src/main/java/org/springframework/integration/samples/ws/temperatureConversion.xml
index ed698c4749..cfcec298dc 100644
--- a/org.springframework.integration.samples/src/main/java/org/springframework/integration/samples/ws/temperatureConversion.xml
+++ b/org.springframework.integration.samples/src/main/java/org/springframework/integration/samples/ws/temperatureConversion.xml
@@ -11,15 +11,12 @@
-
-
-
-
-
+
+
diff --git a/org.springframework.integration.ws/src/main/java/org/springframework/integration/ws/config/WebServiceHandlerParser.java b/org.springframework.integration.ws/src/main/java/org/springframework/integration/ws/config/WebServiceHandlerParser.java
index 156e6d1585..d288797bff 100644
--- a/org.springframework.integration.ws/src/main/java/org/springframework/integration/ws/config/WebServiceHandlerParser.java
+++ b/org.springframework.integration.ws/src/main/java/org/springframework/integration/ws/config/WebServiceHandlerParser.java
@@ -56,6 +56,12 @@ public class WebServiceHandlerParser extends AbstractSingleBeanDefinitionParser
throw new ConfigurationException("The 'uri' attribute is required.");
}
builder.addConstructorArgValue(uri);
+ String inputChannel = element.getAttribute("input-channel");
+ builder.addPropertyReference("source", inputChannel);
+ String outputChannel = element.getAttribute("output-channel");
+ if (StringUtils.hasText(outputChannel)) {
+ builder.addPropertyReference("outputChannel", outputChannel);
+ }
String marshallerRef = element.getAttribute("marshaller");
if (StringUtils.hasText(marshallerRef)) {
builder.addConstructorArgReference(marshallerRef);
diff --git a/org.springframework.integration.ws/src/main/java/org/springframework/integration/ws/config/spring-integration-ws-1.0.xsd b/org.springframework.integration.ws/src/main/java/org/springframework/integration/ws/config/spring-integration-ws-1.0.xsd
index 78bf3ad71f..19dd0925f9 100644
--- a/org.springframework.integration.ws/src/main/java/org/springframework/integration/ws/config/spring-integration-ws-1.0.xsd
+++ b/org.springframework.integration.ws/src/main/java/org/springframework/integration/ws/config/spring-integration-ws-1.0.xsd
@@ -19,14 +19,16 @@
]]>
-
+
- Defines a Web Service MessageHandler adapter.
+ Defines a Web Service based Service Activator endpoint.
+
+
diff --git a/org.springframework.integration.ws/src/main/java/org/springframework/integration/ws/handler/AbstractWebServiceHandler.java b/org.springframework.integration.ws/src/main/java/org/springframework/integration/ws/handler/AbstractWebServiceHandler.java
index abb55619d3..fb41e8165c 100644
--- a/org.springframework.integration.ws/src/main/java/org/springframework/integration/ws/handler/AbstractWebServiceHandler.java
+++ b/org.springframework.integration.ws/src/main/java/org/springframework/integration/ws/handler/AbstractWebServiceHandler.java
@@ -19,6 +19,7 @@ package org.springframework.integration.ws.handler;
import java.io.IOException;
import java.net.URI;
+import org.springframework.integration.endpoint.AbstractInOutEndpoint;
import org.springframework.integration.handler.MessageHandler;
import org.springframework.integration.message.GenericMessage;
import org.springframework.integration.message.Message;
@@ -36,7 +37,7 @@ import org.springframework.ws.soap.client.core.SoapActionCallback;
*
* @author Mark Fisher
*/
-public abstract class AbstractWebServiceHandler implements MessageHandler {
+public abstract class AbstractWebServiceHandler extends AbstractInOutEndpoint {
public static final String SOAP_ACTION_PROPERTY_KEY = "_ws.soapAction";
@@ -70,6 +71,7 @@ public abstract class AbstractWebServiceHandler implements MessageHandler {
return this.webServiceTemplate;
}
+ @Override
public final Message> handle(Message> message) {
Object responsePayload = this.doHandle(message.getPayload(), this.getRequestCallback(message));
return responsePayload != null ? new GenericMessage