org.apache.axis.handlers.soap
Class SOAPService

java.lang.Object
  extended byorg.apache.axis.handlers.BasicHandler
      extended byorg.apache.axis.SimpleChain
          extended byorg.apache.axis.SimpleTargetedChain
              extended byorg.apache.axis.handlers.soap.SOAPService
All Implemented Interfaces:
Chain, Handler, java.io.Serializable, TargetedChain

public class SOAPService
extends SimpleTargetedChain

A SOAPService is a Handler which encapsulates a SOAP invocation. It has an request chain, an response chain, and a pivot-point, and handles the SOAP semantics when invoke()d.

Author:
Glen Daniels (gdaniels@apache.org), Doug Davis (dug@us.ibm.com)
See Also:
Serialized Form

Field Summary
 int nextObjectID
           
 java.util.Map serviceObjects
          A list of our active service objects (these can have lifetimes and be reaped)
 
Fields inherited from class org.apache.axis.SimpleTargetedChain
pivotHandler, requestHandler, responseHandler
 
Fields inherited from class org.apache.axis.SimpleChain
handlers, invoked
 
Fields inherited from class org.apache.axis.handlers.BasicHandler
makeLockable, name, options
 
Constructor Summary
SOAPService()
          Standard, no-arg constructor.
SOAPService(Handler serviceHandler)
          Convenience constructor for wrapping SOAP semantics around "service handlers" which actually do work.
SOAPService(Handler reqHandler, Handler pivHandler, Handler respHandler)
          Constructor with real or null request, pivot, and response handlers.
 
Method Summary
 void addSession(Session session)
          Add this passed in Session to this Service's list of sessions
 boolean availableFromTransport(java.lang.String transportName)
           
 void clearSessions()
          Remove all of this Service's serviceObjects from it known sessions
 void disableTransport(java.lang.String transportName)
          Disable access to this service from a particular transport
 void enableTransport(java.lang.String transportName)
          Make this service available on a particular transport
 void generateWSDL(MessageContext msgContext)
          Generate WSDL.
 java.util.ArrayList getActors()
          Get the merged actor list for this service, including engine-wide actor URIs.
 AxisEngine getEngine()
           
 ServiceDesc getInitializedServiceDesc(MessageContext msgContext)
          Returns a service description with the implementation class filled in.
 java.util.List getRoles()
           
 int getSendType()
           
 java.util.ArrayList getServiceActors()
          Get the service-specific actor list
 ServiceDesc getServiceDescription()
           
 Style getStyle()
           
 TypeMappingRegistry getTypeMappingRegistry()
           
 Use getUse()
           
 void invoke(MessageContext msgContext)
          Invoke is called to do the actual work of the Handler object.
 boolean isRunning()
          Is this service suspended?
 boolean needsHighFidelityRecording()
           
 void setEngine(AxisEngine engine)
          Tell this service which engine it's deployed to.
 void setHighFidelityRecording(boolean highFidelityRecording)
           
 void setPropertyParent(java.util.Hashtable parent)
           
 void setRoles(java.util.List roles)
          Set the service-specific role list
 void setSendType(int sendType)
           
 void setServiceDescription(ServiceDesc serviceDescription)
           
 void setStyle(Style style)
           
 void setUse(Use style)
           
 void start()
          Placeholder for "resume this service" method
 void stop()
          Placeholder for "suspend this service" method
 
Methods inherited from class org.apache.axis.SimpleTargetedChain
getPivotHandler, getRequestHandler, getResponseHandler, init
 
Methods inherited from class org.apache.axis.SimpleChain
addHandler, canHandleBlock, cleanup, contains, getDeploymentData, getHandlers, init, onFault
 
Methods inherited from class org.apache.axis.handlers.BasicHandler
getName, getOption, getOptions, getUnderstoodHeaders, initHashtable, setName, setOption, setOptionDefault, setOptions, setOptionsLockable
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.apache.axis.Chain
addHandler, contains, getHandlers
 
Methods inherited from interface org.apache.axis.Handler
canHandleBlock, cleanup, getDeploymentData, getName, getOption, getOptions, getUnderstoodHeaders, init, onFault, setName, setOption, setOptions
 

Field Detail

serviceObjects

public java.util.Map serviceObjects
A list of our active service objects (these can have lifetimes and be reaped)


nextObjectID

public int nextObjectID
Constructor Detail

SOAPService

public SOAPService()
Standard, no-arg constructor.


SOAPService

public SOAPService(Handler reqHandler,
                   Handler pivHandler,
                   Handler respHandler)
Constructor with real or null request, pivot, and response handlers. A special request handler is specified to inject SOAP semantics.


SOAPService

public SOAPService(Handler serviceHandler)
Convenience constructor for wrapping SOAP semantics around "service handlers" which actually do work.

Method Detail

addSession

public void addSession(Session session)
Add this passed in Session to this Service's list of sessions


clearSessions

public void clearSessions()
Remove all of this Service's serviceObjects from it known sessions


getServiceActors

public java.util.ArrayList getServiceActors()
Get the service-specific actor list

Returns:

getActors

public java.util.ArrayList getActors()
Get the merged actor list for this service, including engine-wide actor URIs.

Returns:

getRoles

public java.util.List getRoles()

setRoles

public void setRoles(java.util.List roles)
Set the service-specific role list

Parameters:
roles - a List of Strings, each containing a role URI

getTypeMappingRegistry

public TypeMappingRegistry getTypeMappingRegistry()

setEngine

public void setEngine(AxisEngine engine)
Tell this service which engine it's deployed to.


getEngine

public AxisEngine getEngine()

availableFromTransport

public boolean availableFromTransport(java.lang.String transportName)

getStyle

public Style getStyle()

setStyle

public void setStyle(Style style)

getUse

public Use getUse()

setUse

public void setUse(Use style)

getServiceDescription

public ServiceDesc getServiceDescription()

getInitializedServiceDesc

public ServiceDesc getInitializedServiceDesc(MessageContext msgContext)
                                      throws AxisFault
Returns a service description with the implementation class filled in. Syncronized to prevent simutaneous modification of serviceDescription.

Throws:
AxisFault

setServiceDescription

public void setServiceDescription(ServiceDesc serviceDescription)

setPropertyParent

public void setPropertyParent(java.util.Hashtable parent)

generateWSDL

public void generateWSDL(MessageContext msgContext)
                  throws AxisFault
Generate WSDL. If we have a specific file configured in the ServiceDesc, just return that. Otherwise run through all the Handlers (including the provider) and call generateWSDL() on them via our parent's implementation.

Specified by:
generateWSDL in interface Handler
Overrides:
generateWSDL in class SimpleChain
Parameters:
msgContext - the MessageContext to write the WSDL out to
Throws:
AxisFault - if there was a problem writing the WSDL

start

public void start()
Placeholder for "resume this service" method


stop

public void stop()
Placeholder for "suspend this service" method


isRunning

public boolean isRunning()
Is this service suspended?

Returns:

enableTransport

public void enableTransport(java.lang.String transportName)
Make this service available on a particular transport


disableTransport

public void disableTransport(java.lang.String transportName)
Disable access to this service from a particular transport


needsHighFidelityRecording

public boolean needsHighFidelityRecording()

setHighFidelityRecording

public void setHighFidelityRecording(boolean highFidelityRecording)

getSendType

public int getSendType()

setSendType

public void setSendType(int sendType)

invoke

public void invoke(MessageContext msgContext)
            throws AxisFault
Description copied from interface: Handler
Invoke is called to do the actual work of the Handler object. If there is a fault during the processing of this method it is invoke's job to catch the exception and undo any partial work that has been completed. Once we leave 'invoke' if a fault is thrown, this classes 'onFault' method will be called. Invoke should rethrow any exceptions it catches, wrapped in an AxisFault.

Specified by:
invoke in interface Handler
Overrides:
invoke in class SimpleChain
Throws:
AxisFault - if there was a fault with any of the handlers


Copyright ? 2003 Apache Web Services Project. All Rights Reserved.