com.sun.xml.ws.handler
Class HandlerTube

java.lang.Object
  extended by com.sun.xml.ws.api.pipe.helper.AbstractTubeImpl
      extended by com.sun.xml.ws.api.pipe.helper.AbstractFilterTubeImpl
          extended by com.sun.xml.ws.handler.HandlerTube
All Implemented Interfaces:
Pipe, Tube
Direct Known Subclasses:
ClientLogicalHandlerTube, ClientMessageHandlerTube, ClientSOAPHandlerTube, ServerLogicalHandlerTube, ServerMessageHandlerTube, ServerSOAPHandlerTube

public abstract class HandlerTube
extends AbstractFilterTubeImpl


Field Summary
protected  java.util.List<Handler> handlers
           
protected  WSDLPort port
           
 
Fields inherited from class com.sun.xml.ws.api.pipe.helper.AbstractFilterTubeImpl
next
 
Constructor Summary
protected HandlerTube(HandlerTube that, TubeCloner cloner)
          Copy constructor for Tube.copy(TubeCloner).
  HandlerTube(Tube next, HandlerTube cousinTube, WSBinding binding)
           
  HandlerTube(Tube next, WSDLPort port, WSBinding binding)
           
 
Method Summary
 void close(MessageContext msgContext)
          Calls close on previously invoked handlers.
protected  void closeClientsideHandlers(MessageContext msgContext)
          Called by close(MessageContext mc) in a Client Handlertube
protected  void closeServersideHandlers(MessageContext msgContext)
          Called by close(MessageContext mc) in a Server Handlertube
protected  WSBinding getBinding()
           
protected  void initiateClosing(MessageContext mc)
          Must be overridden by HandlerTube that drives other handler tubes for processing a message.
 boolean isHandlerChainEmpty()
           
 NextAction processException(java.lang.Throwable t)
          Default no-op implementation.
 NextAction processRequest(Packet request)
          Default no-op implementation.
 NextAction processResponse(Packet response)
          Default no-op implementation.
protected  void resetProcessor()
           
 
Methods inherited from class com.sun.xml.ws.api.pipe.helper.AbstractFilterTubeImpl
preDestroy
 
Methods inherited from class com.sun.xml.ws.api.pipe.helper.AbstractTubeImpl
copy, copy, doInvoke, doInvokeAndForget, doReturnWith, doSuspend, doSuspend, doSuspend, doSuspend, doThrow, process
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

handlers

protected java.util.List<Handler> handlers

port

@Nullable
protected final WSDLPort port
Constructor Detail

HandlerTube

public HandlerTube(Tube next,
                   WSDLPort port,
                   WSBinding binding)

HandlerTube

public HandlerTube(Tube next,
                   HandlerTube cousinTube,
                   WSBinding binding)

HandlerTube

protected HandlerTube(HandlerTube that,
                      TubeCloner cloner)
Copy constructor for Tube.copy(TubeCloner).

Method Detail

getBinding

protected WSBinding getBinding()

processRequest

public NextAction processRequest(Packet request)
Description copied from class: AbstractFilterTubeImpl
Default no-op implementation.

Specified by:
processRequest in interface Tube
Overrides:
processRequest in class AbstractFilterTubeImpl
Parameters:
request - The packet that represents a request message. If the packet has a non-null message, it must be a valid unconsumed Message. This message represents the SOAP message to be sent as a request.

The packet is also allowed to carry no message, which indicates that this is an output-only request. (that's called "solicit", right? - KK)

Returns:
A NextAction object that represents the next action to be taken by the JAX-WS runtime.

processResponse

public NextAction processResponse(Packet response)
Description copied from class: AbstractFilterTubeImpl
Default no-op implementation.

Specified by:
processResponse in interface Tube
Overrides:
processResponse in class AbstractFilterTubeImpl
Parameters:
response - If the packet has a non-null message, it must be a valid unconsumed Message. This message represents a response to the request message passed to Tube.processRequest(Packet) earlier.

The packet is also allowed to carry no message, which indicates that there was no response. This is used for things like one-way message and/or one-way transports. TODO: exception handling semantics need more discussion

Returns:
A NextAction object that represents the next action to be taken by the JAX-WS runtime.

processException

public NextAction processException(java.lang.Throwable t)
Description copied from class: AbstractFilterTubeImpl
Default no-op implementation.

Specified by:
processException in interface Tube
Overrides:
processException in class AbstractFilterTubeImpl
Returns:
A NextAction object that represents the next action to be taken by the JAX-WS runtime.

initiateClosing

protected void initiateClosing(MessageContext mc)
Must be overridden by HandlerTube that drives other handler tubes for processing a message. On Client-side: ClientLogicalHandlerTube drives the Handler Processing. On Server-side: In case SOAP Binding, ServerMessageHandlerTube drives the Handler Processing. In case XML/HTTP Binding, ServerLogicalHandlerTube drives the Handler Processing. If its a top HandlerTube, should override by calling #close(MessaggeContext);


close

public final void close(MessageContext msgContext)
Calls close on previously invoked handlers. Also, Cleans up any state left over in the Tube instance from the current invocation, as Tube instances can be reused after the completion of MEP. On Client, SOAPHandlers are closed first and then LogicalHandlers On Server, LogicalHandlers are closed first and then SOAPHandlers


closeClientsideHandlers

protected void closeClientsideHandlers(MessageContext msgContext)
Called by close(MessageContext mc) in a Client Handlertube


closeServersideHandlers

protected void closeServersideHandlers(MessageContext msgContext)
Called by close(MessageContext mc) in a Server Handlertube


resetProcessor

protected void resetProcessor()

isHandlerChainEmpty

public final boolean isHandlerChainEmpty()


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