Web Services Addressing support
The Web Services Addressing (WS-Addressing) support in this product provides the environment for web services that use the World Wide Web Consortium (W3C) WS-Addressing specifications. This family of specifications provide transport-neutral mechanisms to address web services and to facilitate end-to-end addressing.
We do not usually have to be aware of the underlying WS-Addressing support because WebSphere Application Server ensures that the web service applications are WS-Addressing compliant when required. Read this topic only if we have to use the WS-Addressing support directly. For example, if we have one of the following roles:
- A web service developer who needs to use the WS-Addressing APIs to create endpoint references within an application, and then use these references to target web service resource instances.
- A system programmer who needs to use the IBM proprietary WS-Addressing system programming interfaces (SPIs) to undertake more advanced WS-Addressing operations, such as specifying message-addressing properties on web services messages.
- An administrator who is configuring policy sets for JAX-WS applications.
The WS-Addressing support for developers consists of two sets of programming interfaces: the JAX-WS standard interfaces, and the IBM proprietary implementation of the WS-Addressing specification.
Features of the JAX-WS WS-Addressing support
WAS v9 provides support for the JAX-WS WS-Addressing APIs, which we can use to undertake basic addressing functions such as creating an endpoint reference, enabling WS-Addressing support, and specifying the action URIs associated with the WSDL operations of the web service. Use these APIs to undertake simple WS-Addressing functions and create JAX-WS applications that are portable.
The JAX-WS WS-Addressing APIs provide the following features for core WS-Addressing application development:
- Java representations of WS-Addressing endpoint references.
- Create Java endpoint reference instances for the application endpoint, or other endpoints in the same application, at run time. We do not have to specify the URI of the endpoint reference.
- Create Java endpoint reference instances for endpoints in other applications by specifying the URI of the endpoint reference.
- On services, we can use annotations to specify whether WS-Addressing support is enabled, whether it is required, and which message exchange pattern (synchronous, asynchronous, or both) to use.
- On clients, we can use features to specify whether WS-Addressing support is enabled and whether it is required.
- We can configure client proxy or Dispatch objects using endpoint references.
- Java support for endpoint references that represent Web Services Resource (WS-Resource) instances.
- We can associate reference parameters with an endpoint reference at the time of its creation, to correlate it with a particular resource instance.
- In targeted web services, we can extract the reference parameters of an incoming message, so that the web service can route the message to the appropriate WS-Resource instance.
The following features were introduced in the JAX-WS 2.2 specification, which WAS supports from v8:
- We can specify additional binding information within the metadata of an endpoint reference as part of the JAX-WS 2.2 specification. This functionality was added to WAS in v7, however as it was not part of the JAX-WS 2.1 specification, we might have experienced incompatibility issues when interoperating with non-WAS servers which did not offer support for additional metadata in endpoint references. JAX-WS 2.2 supports WSDL metadata in endpoint references, so applications will be compatible with other implementations of this specification. See the "Web Services Addressing overview"topic for further information.
- We can enable and configure WS-Addressing on a client or service by adding WS-Policy assertions into the WSDL document. WAS processes WS-Addressing information held within the WS-Policy aspect of a WSDL document and uses it in the configuration of that application. See the "Enabling Web Services Addressing support for JAX-WS applications using WS-Policy" topic for further information.
- Specify whether a synchronous or an asynchronous message exchange pattern is required by a web service application using the addressing annotation or the AddressingFeature. Use the responses parameter on the addressing annotations or the AddressingFeature class in the code. See the "Enabling Web Services Addressing support for JAX-WS applications using addressing annotations" topic and the "Enabling Web Services Addressing support for JAX-WS applications using addressing features" topic for further information.
- We can configure WS-Addressing using deployment descriptors. Add an <addressing> element and optional child elements to the deployment descriptor file for the application. See the "Enabling Web Services Addressing support for JAX-WS applications using deployment descriptors" topic for further information.
- We can generate code from a WSDL document and WAS automatically inserts @Action and @FaultAction annotations into the generated Java code. See the "Web Services Addressing annotations" topic for further information.
Features of the IBM proprietary WS-Addressing support
WAS v9 provides an IBM proprietary implementation of the WS-Addressing specification, which we can use with JAX-RPC applications as well as JAX-WS applications, to undertake more advanced functions such as creating endpoint references that represent highly available objects, or directly setting message addressing properties in the SOAP header. Use these APIs and SPIs to create JAX-RPC applications that use addressing, or we want to undertake more advanced functions that are not possible with the JAX-WS APIs.
The IBM proprietary API provides the following basic features:
- Create Java endpoint reference instances to represent any endpoint in the server, based on the deployment environment of the application. We do not have to specify the URI of the endpoint reference. Additionally, endpoint references can represent highly available or workload-managed objects.
- We can configure client JAX-WS BindingProvider request context objects, or JAX-RPC Stub or Call objects, with a WS-Addressing endpoint reference. Future invocations on these objects are targeted at the endpoint represented by the endpoint reference. The invocations also automatically conform to the WS-Addressing specification (namespace) associated with that endpoint reference.
The IBM proprietary WS-Addressing SPIs provide support for extended WS-Addressing system development using the following features:
- Reasoning and manipulation of endpoint references beyond what is available at the application programming level.
- We can manipulate the contents of the endpoint reference, as specified by the WS-Addressing specification.
- We can associate a WS-Addressing namespace, and therefore specification behavior, with an endpoint reference.
- Java representations of the WS-Addressing message-addressing properties.
- We can specify WS-Addressing message-addressing properties for outbound web service messages. In the targeted web service, we can extract message addressing properties from inbound web service messages.
- We can specify the WS-Addressing namespace of an outbound WS-Addressing message, although in most cases the namespace is automatically derived based on the target endpoint reference. In a targeted web service, we can acquire the WS-Addressing namespace of an incoming message.
Support for WS-Addressing specifications and interoperability
By default, this product supports the W3C WS-Addressing 1.0 Core and SOAP Binding specifications that are identified by the http://www.w3.org/2005/08/addressing namespace. Unless otherwise stated, WS-Addressing semantics that are described in this documentation refer to these specifications.
For interoperability, other levels of the WS-Addressing specification are supported in this version of the product; in particular, the WS-Addressing W3C submission with the namespace http://schemas.xmlsoap.org/ws/2004/08/addressing.
For JAX-WS applications, this product supports the WS-Addressing metadata specification identified by the http://www.w3.org/2007/05/addressing/metadata namespace. This specification supersedes the WS-Addressing Web Services Description Language (WSDL) binding specification identified by the http://www.w3.org/2006/05/addressing/wsdl namespace.
In addition, this product supports the following features from the WS-Addressing WSDL binding specification:
- The wsaw:UsingAddressing extensibility element, on the WSDL Binding element only. The supported namespaces for this element are the http://www.w3.org/2006/05/addressing/wsdl namespace and the http://www.w3.org/2006/02/addressing/wsdl namespace (deprecated).
- The wsaw:Action extensibility element. The supported namespaces for this element are the http://www.w3.org/2006/05/addressing/wsdl namespace, the http://www.w3.org/2006/02/addressing/wsdl namespace (deprecated), and the http://schemas.xmlsoap.org/ws/2004/08/addressing namespace.
Subtopics
- Web Services Addressing overview
- Web Services Addressing version interoperability
- Web Services Addressing application programming model
- Web Services Addressing annotations
- Web Services Addressing security
- Web Services Addressing: firewalls and intermediary nodes
- Web Services Addressing and the service integration bus
- Web Services Addressing APIs
- IBM proprietary Web Services Addressing SPIs
Related:
Web Services Resource Framework support Web Services Atomic Transaction support in the application server Web Services Business Activity support in the application server JAX-WS Web service providers and policy configuration sharing Create stateful web services using the Web Services Resource Framework Use WS-Notification for publish and subscribe messaging for web services Enable Web Services Addressing support for JAX-WS applications using WS-Policy Enable Web Services Addressing support for JAX-WS applications using addressing annotations Enable Web Services Addressing support for JAX-WS applications using addressing features Enable Web Services Addressing support for JAX-WS applications using deployment descriptors Programming model APIs and specifications W3C WS-Addressing specifications: http://www.w3.org/2002/ws/addr/ W3C submission WS-Addressing specification: http://www.w3.org/Submission/ws-addressing/ JAX-WS API: http://jcp.org/aboutJava/communityprocess/mrel/jsr224/index2.html