javax.xml.ws

## Interface LogicalMessage

    public interface LogicalMessage

The `LogicalMessage` interface represents a protocol agnostic XML message and contains methods that provide access to the payload of the message.

Since:
  JAX-WS 2.0

### Method Summary

All Methods Instance Methods Abstract Methods
`Source` `getPayload()` Gets the message payload as an XML source, may be called multiple times on the same LogicalMessage instance, always returns a new `Source` that may be used to retrieve the entire message payload.
`Object` `getPayload(JAXBContext context)` Gets the message payload as a JAXB object.
`void` `setPayload(Object payload, JAXBContext context)` Sets the message payload
`void` `setPayload(Source payload)` Sets the message payload

### Method Detail

#### getPayload

    Source getPayload()

Gets the message payload as an XML source, may be called multiple times on the same LogicalMessage instance, always returns a new `Source` that may be used to retrieve the entire message payload.

If the returned `Source` is an instance of `DOMSource`, then modifications to the encapsulated DOM tree change the message payload in-place, there is no need to susequently call `setPayload`. Other types of `Source` provide only read access to the message payload.

Returns:
  The contained message payload; returns `null` if no payload is present in this message.

#### setPayload

    void setPayload(Source payload)

Sets the message payload

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

#### getPayload

    Object getPayload(JAXBContext context)

Gets the message payload as a JAXB object. Note that there is no connection between the returned object and the message payload, changes to the payload require calling `setPayload`.

Parameters:
  `context` - The JAXBContext that should be used to unmarshall the message payload
Returns:
  The contained message payload; returns `null` if no payload is present in this message
Throws:
  `WebServiceException` - If an error occurs when using a supplied JAXBContext to unmarshall the payload. The cause of the WebServiceException is the original JAXBException.

#### setPayload

    void setPayload(Object payload,
                    JAXBContext context)

Sets the message payload

Parameters:
  `payload` - message payload
  `context` - The JAXBContext that should be used to marshall the payload
Throws:
  `UnsupportedOperationException` - If this operation is not supported
  `WebServiceException` - If an error occurs when using the supplied JAXBContext to marshall the payload. The cause of the WebServiceException is the original JAXBException.