diff --git a/src/docbkx/client.xml b/src/docbkx/client.xml
index 0b796901..04e6798d 100644
--- a/src/docbkx/client.xml
+++ b/src/docbkx/client.xml
@@ -32,7 +32,7 @@
Result. Additionally, it can marshal objects to XML before sending
them across a transport, and unmarshal any response XML into an object again.
-
+ URIs and Transports
The WebServiceTemplate class uses an URI as the message destination.
@@ -313,6 +313,34 @@ public void marshalWithSoapActionHeader(MyObject o) {
}
});
}]]>
+
+
+ Note that you can also use the
+ org.springframework.ws.soap.client.core.SoapActionCallback to set the SOAP
+ Action header.
+
+
+
+ WS-Addressing
+
+ In addition to the server-side WS-Addressing support,
+ Spring Web Services also has support for this specification on the client-side.
+
+
+ For setting WS-Addressing headers on the client, you can use the
+ org.springframework.ws.soap.addressing.client.ActionCallback. This callback
+ takes the desired Action header as a parameter. It also has constructors for specifying the
+ WS-Addressing version, and a To header. If not specified, the
+ To header will default to the URL of the connection being made.
+
+
+ Here is an example of setting the Action header to
+ http://samples/RequestOrder:
+
+
+
diff --git a/src/docbkx/server.xml b/src/docbkx/server.xml
index be84108f..d5a38345 100644
--- a/src/docbkx/server.xml
+++ b/src/docbkx/server.xml
@@ -850,7 +850,7 @@ public class AnnotationOrderEndpoint {
The mapping above routes requests which have a SOAPAction of
http://samples/RequestOrder to the 'getOrderEndpoint'. Requests with
- http://samples/CreateOrder will be routed to the 'createController'.
+ http://samples/CreateOrder will be routed to the 'createOrderEndpoint'.
@@ -887,6 +887,138 @@ public class AnnotationOrderEndpoint {
method will be invoked.
+
+ WS-Addressing
+
+ WS-Addressing specifies a transport-neutral routing mechanism. It is based on a
+ To and Action SOAP header, which indicate the destination and
+ intent of the SOAP message, respectively. Additionally, WS-Addressing allows you to define a return
+ address (for normal messages and for faults), and a unique message identifier which can be used for
+ correlation
+
+ For more information on WS-Addressing, see .
+ .
+ Here is an example of a WS-Addressing message:
+
+
+ urn:uuid:21363e0d-2645-4eb7-8afd-2f5ee1bb25cf
+
+ http://example.com/business/client1
+
+ http://example/com/fabrikam
+ http://example.com/fabrikam/mail/Delete
+
+
+
+ 42
+
+
+]]>
+ In this example, the destination is set to http://example/com/fabrikam, while the action is
+ set to http://example.com/fabrikam/mail/Delete. Additionally, there is a message identifier,
+ and an reply-to address. By default, this address is the "anonymous" address, indicating that a response
+ should be sent using the same channel as the request (i.e. the HTTP response), but it can also be
+ another address, as indicated in this example.
+
+
+ In Spring Web Services, WS-Addressing is implemented as an endpoint mapping. Using this mapping, you
+ associate WS-Addressing actions with endpoints, similar to the SoapActionEndpointMapping
+ described above.
+
+
+ SimpleActionEndpointMapping
+
+ The SimpleActionEndpointMapping is meant to be used in a standard Spring
+ application context. It maps actions to endpoints via an exposed mappings
+ property. Here is an example:
+
+
+
+ getOrderEndpoint
+ createOrderEndpoint
+
+
+
+
+
+
+
+
+
+
+
+]]>
+
+
+ The mapping above routes requests which have a WS-Addressing Action of
+ http://samples/RequestOrder to the 'getOrderEndpoint'. Requests with
+ http://samples/CreateOrder will be routed to the 'createOrderEndpoint'.
+
+
+ By default, the SimpleActionEndpointMapping supports both the 1.0
+ (May 2006), and the August 2004 editions of WS-Addressing. These two versions are most popular, and
+ are interoperably with Axis 1 and 2, JAX-WS, XFire, Windows Communication Foundation (WCF), and
+ Windows Services Enhancemenets (WSE) 3.0. If necessary, specific versions of the spec can be
+ injected into the versions property.
+
+
+ Besides the mappings property, the endpoint mapping also has an
+ address property. If set, value of this property is compared to the
+ To header property of the incominging message.
+
+
+ Finally, there is the messageSenders property, which is required for sending
+ response messages to non-anonymous, out-of-bound addresses. You can set MessageSender
+ implementations in this property, the same as you would on the WebServiceTemplate.
+ See .
+
+
+
+ AnnotationActionEndpointMapping
+
+ The AnnotationActionEndpointMapping is quite similar to the SimpleActionEndpointMapping.
+ It has the same versions and messageSenders properties,
+ but uses Java 5 annotations.
+
+
+ To use the AnnotationActionEndpointMapping, annotate the handling methods
+ with the @Action annotation, similar to the
+ @PayloadRoot and @SoapAction
+ annotations described in and
+ . Here is an example:
+
+
+
+ In addition to the @Action annotation, you can annotate the class
+ with the @Address annotation. If set, the value is compared to the
+ To header property of the incominging message.
+
+
+ Intercepting requests - the EndpointInterceptor interface