Network Deployment (Distributed operating systems), v8.0 > Develop and deploying applications > Develop web services > Develop JAX-RPC web services clients > Implement extensions to JAX-RPC web services clients
Receive implicit SOAP headers with JAX-RPC
We can enable an existing JAX-RPC Web services client to receive values from implicit SOAP headers. By modifying your client code to receive implicit SOAP headers, you can receive specific information within an incoming web service response.
To complete this task, you need a web services client that you can enable to receive implicit SOAP headers.
An implicit SOAP header is a SOAP header that fits one of the following descriptions:
- A message part that is declared as a SOAP header in the binding in the WSDL file, but the message definition is not referenced by a portType element within a WSDL file.
- An element that is not contained in the WSDL file.
Handlers and service endpoints can manipulate implicit or explicit SOAP headers using the SOAP with Attachments API for Java (SAAJ) data model.
We cannot manipulate protected SOAP headers. A SOAP header that is declared protected by its owning component, for example, Web Services Security, is not accessible to client applications. An exception occurs if you try to manipulate protected SOAP headers.
The client application sets properties on the Stub or Call object to send and receive implicit SOAP headers.
Procedure
- Create a java.util.HashMap object
- Add an entry to the HashMap object for each implicit SOAP header that the client wants to receive. The HashMap entry key is the QName of the SOAP header. The HashMap entry value is null.
- Set the HashMap entry on the Stub or Call object. The property name is com.ibm.websphere.webservices.Constants.RESPONSE_SOAP_HEADERS. The value of the property is the HashMap.
- Issue remote method calls against the Stub or Call object. The web services engine extracts the specified response headers from the web services response message and inserts them into the HashMap. After the remote method returns, the response headers are accessible from the HashMap object.
A JAXRPCException error can occur if any of the following are true:
- The HashMap contains a key that is not a QName.
- The HashMap contains a key that represents a SOAP header that is declared protected by the owning component.
Results
You have a JAX-RPC web services client that can receive values from implicit SOAP headers.
SOAP with Attachments API for Java interface
Send implicit SOAP headers with JAX-RPC
Implement extensions to JAX-RPC web services clients