javax.xml.ws.handler.soap

## Interface SOAPMessageContext

All Superinterfaces:
  Map<String,Object>, MessageContext

    public interface SOAPMessageContext
    extends MessageContext

The interface `SOAPMessageContext` provides access to the SOAP message for either RPC request or response. The `javax.xml.soap.SOAPMessage` specifies the standard Java API for the representation of a SOAP 1.1 message with attachments.

Since:
  JAX-WS 2.0
See Also:
  `SOAPMessage`

### Nested Class Summary

### Nested classes/interfaces inherited from interface javax.xml.ws.handler.MessageContext

`MessageContext.Scope`

### Nested classes/interfaces inherited from interface java.util.Map

`Map.Entry<K,V>`

### Field Summary

### Fields inherited from interface javax.xml.ws.handler.MessageContext

`HTTP_REQUEST_HEADERS, HTTP_REQUEST_METHOD, HTTP_RESPONSE_CODE, HTTP_RESPONSE_HEADERS, INBOUND_MESSAGE_ATTACHMENTS, MESSAGE_OUTBOUND_PROPERTY, OUTBOUND_MESSAGE_ATTACHMENTS, PATH_INFO, QUERY_STRING, REFERENCE_PARAMETERS, SERVLET_CONTEXT, SERVLET_REQUEST, SERVLET_RESPONSE, WSDL_DESCRIPTION, WSDL_INTERFACE, WSDL_OPERATION, WSDL_PORT, WSDL_SERVICE`

### Method Summary

All Methods Instance Methods Abstract Methods
`Object[]` `getHeaders(QName header, JAXBContext context, boolean allRoles)` Gets headers that have a particular qualified name from the message in the message context.
`SOAPMessage` `getMessage()` Gets the `SOAPMessage` from this message context.
`Set<String>` `getRoles()` Gets the SOAP actor roles associated with an execution of the handler chain.
`void` `setMessage(SOAPMessage message)` Sets the SOAPMessage in this message context

### Methods inherited from interface javax.xml.ws.handler.MessageContext

`getScope, setScope`

### Methods inherited from interface java.util.Map

`clear, compute, computeIfAbsent, computeIfPresent, containsKey, containsValue, entrySet, equals, forEach, get, getOrDefault, hashCode, isEmpty, keySet, merge, put, putAll, putIfAbsent, remove, remove, replace, replace, replaceAll, size, values`

### Method Detail

#### getMessage

    SOAPMessage getMessage()

Gets the `SOAPMessage` from this message context. Modifications to the returned `SOAPMessage` change the message in-place, there is no need to subsequently call `setMessage`.

Returns:
  Returns the `SOAPMessage`; returns `null` if no `SOAPMessage` is present in this message context

#### setMessage

    void setMessage(SOAPMessage message)

Sets the SOAPMessage in this message context

Parameters:
  `message` - SOAP message
Throws:
  `WebServiceException` - If any error during the setting of the `SOAPMessage` in this message context
  `UnsupportedOperationException` - If this operation is not supported

#### getHeaders

    Object[] getHeaders(QName header,
                        JAXBContext context,
                        boolean allRoles)

Gets headers that have a particular qualified name from the message in the message context. Note that a SOAP message can contain multiple headers with the same qualified name.

Parameters:
  `header` - The XML qualified name of the SOAP header(s).
  `context` - The JAXBContext that should be used to unmarshall the header
  `allRoles` - If `true` then returns headers for all SOAP roles, if `false` then only returns headers targetted at the roles currently being played by this SOAP node, see `getRoles`.
Returns:
  An array of unmarshalled headers; returns an empty array if no message is present in this message context or no headers match the supplied qualified name.
Throws:
  `WebServiceException` - If an error occurs when using the supplied `JAXBContext` to unmarshall. The cause of the `WebServiceException` is the original `JAXBException`.

#### getRoles

    Set<String> getRoles()

Gets the SOAP actor roles associated with an execution of the handler chain. Note that SOAP actor roles apply to the SOAP node and are managed using `SOAPBinding.setRoles(java.util.Set<java.lang.String>)` and `SOAPBinding.getRoles()`. `Handler` instances in the handler chain use this information about the SOAP actor roles to process the SOAP header blocks. Note that the SOAP actor roles are invariant during the processing of SOAP message through the handler chain.

Returns:
  Array of `String` for SOAP actor roles