Class JavaProvider

All Implemented Interfaces:
Serializable, Handler
Direct Known Subclasses:
MsgProvider, RPCProvider

public abstract class JavaProvider extends BasicProvider
Base class for Java dispatching. Fetches various fields out of envelope, looks up service object (possibly using session state), and delegates envelope body processing to subclass via abstract processMessage method.
Author:
Doug Davis (dug@us.ibm.com), Carl Woolf (cwoolf@macromedia.com)
See Also:
  • Field Details

    • log

      protected static org.apache.commons.logging.Log log
    • entLog

      protected static org.apache.commons.logging.Log entLog
    • OPTION_CLASSNAME

      public static final String OPTION_CLASSNAME
      See Also:
    • OPTION_ALLOWEDMETHODS

      public static final String OPTION_ALLOWEDMETHODS
      See Also:
    • OPTION_SCOPE

      public static final String OPTION_SCOPE
      See Also:
  • Constructor Details

    • JavaProvider

      public JavaProvider()
  • Method Details

    • getServiceObject

      public Object getServiceObject(MessageContext msgContext, Handler service, String clsName, IntHolder scopeHolder) throws Exception
      Get the service object whose method actually provides the service. May look up in session table.
      Throws:
      Exception
    • processMessage

      public abstract void processMessage(MessageContext msgContext, SOAPEnvelope reqEnv, SOAPEnvelope resEnv, Object obj) throws Exception
      Process the current message. Side-effect resEnv to create return value.
      Parameters:
      msgContext - self-explanatory
      reqEnv - the request envelope
      resEnv - the response envelope
      obj - the service object itself
      Throws:
      Exception
    • invoke

      public void invoke(MessageContext msgContext) throws AxisFault
      Invoke the message by obtaining various common fields, looking up the service object (via getServiceObject), and actually processing the message (via processMessage).
      Parameters:
      msgContext - the MessageContext to process with this Handler.
      Throws:
      AxisFault - if the handler encounters an error
    • makeNewServiceObject

      protected Object makeNewServiceObject(MessageContext msgContext, String clsName) throws Exception
      Default java service object comes from simply instantiating the class wrapped in jc
      Throws:
      Exception
    • getServiceClassName

      protected String getServiceClassName(Handler service)
      Return the class name of the service
    • getServiceClassNameOptionName

      protected String getServiceClassNameOptionName()
      Return the option in the configuration that contains the service class name
    • getServiceClass

      protected Class getServiceClass(String clsName, SOAPService service, MessageContext msgContext) throws AxisFault
      Returns the Class info about the service class.
      Throws:
      AxisFault
    • initServiceDesc

      public void initServiceDesc(SOAPService service, MessageContext msgContext) throws AxisFault
      Fill in a service description with the correct impl class and typemapping set. This uses methods that can be overridden by other providers (like the EJBProvider) to get the class from the right place.
      Specified by:
      initServiceDesc in class BasicProvider
      Throws:
      AxisFault