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.
You 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 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
This product 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.
- We can create Java endpoint reference instances for the application endpoint, or other endpoints in the same application, at run time. You do not have to specify the URI of the endpoint reference.
- We can 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 by 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 WebSphere Application Server supports from Version 8:
- 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 WebSphere Application Server in Version 7, however as it was not part of the JAX-WS 2.1 specification, we might have experienced incompatibility issues when interoperating with non-WebSphere Application Server 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. WebSphere Application Server 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.
- We can 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 "Enable WS-Addressing for JAX-WS applications" 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 "Enable Web Services Addressing support for JAX-WS applications using deployment descriptors" topic for further information.
- We can generate code from a WSDL document and WebSphere Application Server 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
This product 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 to undertake more advanced functions that are not possible with the JAX-WS APIs.
The IBM proprietary API provides the following basic features:
- We can create Java endpoint reference instances to represent any endpoint in the server, based on the deployment environment of the application. You 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 that is represented by the endpoint reference. The invocations also automatically conform to the WS-Addressing specification (namespace) that is 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 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 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 (WS-Addressing) is a World Wide Web Consortium (W3C) specification that aids interoperability between web services by defining a standard way to address web services and provide addressing information in messages. The WS-Addressing specification introduces two primary concepts: endpoint references, and message-addressing properties. For further details, refer to the WS-Addressing specifications.
- Web Services Addressing version interoperability
The Web Services Addressing (WS-Addressing) support in this product can interoperate with various versions of the WS-Addressing specification.
- Web Services Addressing application programming model
The Web Services Addressing (WS-Addressing) specification defines an endpoint reference that is represented in Extensible Markup Language (XML) by an EndpointReferenceType object that encapsulates information about the endpoint address as well as additional contextual information associated with the endpoint. Some services might be addressable by using a simple URI address, as is most typical in web services. Other services might require the use of an endpoint reference to address them, so that the additional contextual information associated with the endpoint is present in messages sent to the endpoint.
- Web Services Addressing annotations
The WS-Addressing specification provides transport-neutral mechanisms to address web services and to facilitate end-to-end addressing. If we have a JAX-WS application we can use Java annotations in our code to specify WS-Addressing behavior at run time.
- Web Services Addressing security
It is essential that communications that use Web Services Addressing (WS-Addressing) are adequately secured and that a sufficient level of trust is established between the communicating parties. We can achieve secure communications through the signing of WS-Addressing message-addressing properties and the encryption of endpoint references.
- Web Services Addressing: firewalls and intermediary nodes
Using the Web Services Addressing (WS-Addressing) support in this product, we can create endpoint references that can be distributed across firewalls and intermediary nodes.
- Web Services Addressing and the service integration bus
For the Web Services Addressing (WS-Addressing) support, the presence of a service integration bus can affect the routing of messages. If we are also using a firewall, we might have to complete some additional configuration.
- Web Services Addressing APIs
This product provides interfaces at the application programming level to enable application developers, including developers of Web Services Resource Framework applications, to create references to, and to target, web service resource instances. If we are a system programmer, we can use some these interfaces with the Web Services Addressing (WS-Addressing) system programming interfaces.
- IBM proprietary Web Services Addressing SPIs
The IBM proprietary Web Services Addressing (WS-Addressing) system programming interfaces (SPIs) extend the IBM proprietary WS-Addressing APIs to enable you to create and reason about the contents of endpoint references and other WS-Addressing artifacts, and to set or retrieve WS-Addressing message-addressing properties (MAPs) on or from web service messages.
Related concepts
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
Related tasks
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 WS-Addressing for JAX-WS applications Enable Web Services Addressing support for JAX-WS applications using addressing features Enable Web Services Addressing support for JAX-WS applications using deployment descriptors
Specifications and API documentation
Related information:
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