Skip to main content Skip to complementary content

Messaging Modes

Messaging Modes overview

Objects that implement the Provider interface have two messaging modes :

  • Message mode

  • Payload mode

The messaging mode you specify determines the level of messaging detail that is passed to your implementation.

Message mode

When using message mode , a Provider implementation works with complete messages. A complete message includes any binding specific headers and wrappers. For example, a Provider implementation that uses a SOAP binding would receive requests as fully specified SOAP message. Any response returned from the implementation would also need to be a fully specified SOAP message.

You specify that a Provider implementation uses message mode by providing the value java.xml.ws.Service.Mode.MESSAGE as the value to the javax.xml.ws.ServiceMode annotation.

@WebServiceProvider
            @ServiceMode(value=Service.Mode.MESSAGE)
            public class stockQuoteProvider implements Provider<SOAPMessage> {
            ...
            }

Payload mode

In payload mode a Provider implementation works with only the payload of a message. For example, a Provider implementation working in payload mode works only with the body of a SOAP message. The binding layer processes any binding level wrappers and headers.

Information noteNote: When working with a binding that does not use special wrappers, such as the XML binding, payload mode and message mode provide the same results.

You specify that a Provider implementation uses payload mode by providing the value java.xml.ws.Service.Mode.PAYLOAD as the value to the javax.xml.ws.ServiceMode annotation.

@WebServiceProvider
            @ServiceMode(value=Service.Mode.PAYLOAD)
            public class stockQuoteProvider implements Provider<DOMSource> {
            ...
            }
Information noteNote: If you do not provide the @ServiceMode annotation, the Provider implementation will default to using payload mode.

Did this page help you?

If you find any issues with this page or its content – a typo, a missing step, or a technical error – please let us know!