+

Search Tips   |   Advanced Search

Sending implicit SOAP headers with JAX-WS


We can enable an existing JAX-WS Web services client to send values in implicit SOAP headers. By modifying your client code to send implicit SOAP headers, we can send specific information within an outgoing Web service request.

To complete this task, we need a Web services client that we can enable to send implicit SOAP headers.

An implicit SOAP header is a SOAP header that fits one of the following descriptions:

Handlers and service endpoints can manipulate implicit or explicit SOAP headers using the SOAP with Attachments API for Java (SAAJ) data model.

Use JAX-WS, there is no restriction on types of headers that we can manipulate.

The client application sets properties on the Dispatch or Proxy object to send and receive implicit SOAP headers.

 

  1. Create a java.util.HashMap<QName, List<String>> object.

  2. Add an entry to the HashMap object for each implicit SOAP header that the client wants to send. The HashMap entry key is the QName of the SOAP header. The HashMap entry value is a List<String> object, and each String is the XML text of the entire SOAP header element. By using List<String> object, we can add multiple SOAP header elements that each have the same QName object.

  3. Set the HashMap object as a property on the request context of the Dispatch or Proxy object. The property name is com.ibm.wsspi.websvcs.Constants.JAXWS_OUTBOUND_SOAP_HEADERS. The value of the property is the HashMap.

  4. Issue the remote method calls using the Dispatch or Proxy object.

    The headers within the HashMap object are sent in the outgoing message.A WebServiceException error can occur if any of the following are true:

    • The HashMap object contains a key not a QName object or if the HashMap object contains a value not a List<String> object.

    • The String representing an SOAP header is not a compliant XML message.

    • The HashMap contains a key that represents a SOAP header that is declared protected by the owning component.

 

Results

we have a JAX-WS Web services client configured to send implicit SOAP headers.


SOAP with Attachments API for Java interface

 

Related tasks


Receiving implicit SOAP headers with JAX-WS
Implementing extensions to JAX-WS Web services clients

 

Related


Example: Using JAX-WS properties to send and receive SOAP headers