Package com.sun.xml.ws.server

JAX-WS 2.0.1 Server Runtime

See:
          Description

Interface Summary
EndpointAwareTube Tubes that implement this interface will receive notification of the WSEndpoint holding the tubeline after successful endpoint creation.
ServerPropertyConstants  
 

Class Summary
AbstractMultiInstanceResolver<T> Partial implementation of InstanceResolver with code to handle multiple instances per server.
AbstractWebServiceContext Partial WSWebServiceContext implementation.
DefaultResourceInjector Default ResourceInjector.
DraconianValidationErrorHandler Default ValidationErrorHandler that just rethrows SAXException in case of errors.
EndpointFactory Entry point to the JAX-WS RI server-side runtime.
EndpointMessageContextImpl Implements WebServiceContext's MessageContext on top of Packet.
InvokerTube<T> Base code for ProviderInvokerTube and SEIInvokerTube.
MonitorBase  
MonitorRootService  
SDDocumentImpl SDDocument implmentation.
ServerSchemaValidationTube Tube that does the schema validation on the server side.
ServiceDefinitionImpl ServiceDefinition implementation.
SingletonResolver<T> InstanceResolver that always returns a single instance.
StatefulInstanceResolver<T> InstanceResolver that looks at JAX-WS cookie header to determine the instance to which a message will be routed.
WSEndpointImpl<T> WSEndpoint implementation.
WSEndpointMOMProxy ManagedObjectManager proxy class for WSEndpointImpl instances that could be used when Gmbal API calls need to be deferred.
 

Exception Summary
ServerRtException  
UnsupportedMediaException Codec throws this exception when it doesn't understand request message's Content-Type
 

Package com.sun.xml.ws.server Description

JAX-WS 2.0.1 Server Runtime

This document describes the architecture of server side JAX-WS 2.0.1 runtime.

JAX-WS 2.0.1 Server Runtime Sequence Diagram

Message Flow

A Web Service invocation starts with either the WSServletDelegate or the ServerConnectionImpl. Both of these classes find the appropriate RuntimeEndpointInfo and invokes the Tie.handle method. This method first creates a MessageInfo used to gather inforrmation about the message to be received. A RuntimeContext is then created with the MessageInfo and the RuntimeModel retrieved from the RuntimeEndpointInfo. The RuntimeContext is then stored in the MessageInfo. The EPTFactory is retrieved from the EPTFactoryFactoryBase and also placed in the MessagInfo. A MessageDispatcher is then created and the receive method is invoked. There will be two types of MessageDispatchers for JAX-WS 2.0.1, SOAPMessageDispatcher (one for client and one for the server) and an XMLMessageDispatcher (one for the client and one for the server).

The MessageDispatcher.receive method orchestrates the receiving of a Message. The SOAPMessageDispatcher first converts the MessageInfo to a SOAPMessage. The SOAPMessageDispatcher then does mustUnderstand processing followed by an invocation of any handlers. The SOAPMessage is then converted to an InternalMessage and stored in the MessageInfo. The converting of the SOAPMessage to an InternalMessage is done using the decoder retrieved from the EPTFactory that is contained in the MessageInfo. Once the SOAPMessage has been converted to an InternalMessage the endpoint implementation is invoked via reflection from the Method stored in the MessageInfo. The return value of the method call is then stored in the InternalMessage. An internalMessage is then created from the MessageInfo. The SOAPEncoder is retrieved from the EPTFactory stored in the MessageInfo. The SOAPEncoder.toSOAPMessage is then invoked to create a SOAPMessage from the InternalMessage. A WSConnection is then retrieved from the MessageInfo and the SOAPMessage is returned over that WSConnection.


External Interactions

SAAJ API

javax.xml.soap.MessageFactory(binding).createMessage(MimeHeaders, InputStream)

JAXB API

JAX-WS RI uses the JAXB API to marshall/unmarshall user created JAXB objects with user created JAXBContext. Handler, Dispatch in JAX-WS API provide ways for the user to specify his/her own JAXBContext. JAXBTypeSerializer class uses all these methods.

The following two JAXB classes are implemented by JAX-WS to enable/implement MTOM and XOP

JAXB Runtime-API (private contract)

JAX-WS RI uses these private API for serialization/deserialization purposes. This private API is used to serialize/deserialize method parameters at the time of JAXBTypeSerializer class uses all these methods.



Copyright (c) 1997-2012 Oracle and/or its affiliates. All rights reserved.