## org.apache.axis.handlers.soap
Class SOAPService

    java.lang.Object
      org.apache.axis.handlers.BasicHandler
          org.apache.axis.SimpleChain
              org.apache.axis.SimpleTargetedChain
                  org.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 © 2005 Apache Web Services Project. All Rights Reserved.