The JAX-WS RI 2.1 uses the Message class as its internal representation of a SOAP message. This interface is designed for high performance construction/access of the SOAP infoset from various sources.
This class can be extended by the applications to provide a SOAP infoset backed by a different data structure, but there are also a wide variety of default implementations that are optimized for various backend data store, such as JAXB objects, XMLStreamReader, etc.
For most applications, using the JAX-WS RI through the JAX-WS API makes the most sense, but if you are building a framework around the JAX-WS RI, you might find it more efficient to send/receive this Message object directly.
To make this possible, I just modified the RI so that it supports Dispatch<Message> (so that on the client side you can send arbitrary Message and receive one), andProvider<Message> (so that you can implement a service that receives Message and respond with one.)
A Dispatch can be created just like you create otherDispatchs, that is: