## org.apache.axis.providers.java
Class EJBProvider

    java.lang.Object
      org.apache.axis.handlers.BasicHandler
          org.apache.axis.providers.BasicProvider
              org.apache.axis.providers.java.JavaProvider
                  org.apache.axis.providers.java.RPCProvider
                      org.apache.axis.providers.java.EJBProvider

All Implemented Interfaces:
  Handler, java.io.Serializable

public class EJBProvider
extends RPCProvider

A basic EJB Provider

Author:
  Carl Woolf (cwoolf@macromedia.com), Tom Jordahl (tomj@macromedia.com), C?dric Chabanois (cchabanois@ifrance.com)
See Also:
  Serialized Form

Field Summary
`protected static java.lang.Class[]` `empty_class_array`
`protected static java.lang.Object[]` `empty_object_array`
`protected static org.apache.commons.logging.Log` `entLog`
`static java.lang.String` `jndiContextClass`
`static java.lang.String` `jndiPassword`
`static java.lang.String` `jndiURL`
`static java.lang.String` `jndiUsername`
`protected static org.apache.commons.logging.Log` `log`
`static java.lang.String` `OPTION_BEANNAME`
`static java.lang.String` `OPTION_HOMEINTERFACENAME`
`static java.lang.String` `OPTION_LOCALHOMEINTERFACENAME`
`static java.lang.String` `OPTION_LOCALINTERFACENAME`
`static java.lang.String` `OPTION_REMOTEINTERFACENAME`

Fields inherited from class org.apache.axis.providers.java.JavaProvider
`OPTION_ALLOWEDMETHODS, OPTION_CLASSNAME, OPTION_SCOPE`

Fields inherited from class org.apache.axis.providers.BasicProvider
`OPTION_EXTRACLASSES, OPTION_WSDL_INPUTSCHEMA, OPTION_WSDL_PORTTYPE, OPTION_WSDL_SERVICEELEMENT, OPTION_WSDL_SERVICEPORT, OPTION_WSDL_SOAPACTION_MODE, OPTION_WSDL_TARGETNAMESPACE`

Fields inherited from class org.apache.axis.handlers.BasicHandler
`makeLockable, name, options`

Constructor Summary
`EJBProvider()`

Method Summary
`protected javax.naming.InitialContext` `getCachedContext()`
`protected javax.naming.InitialContext` `getContext(java.util.Properties properties)`
`protected java.lang.Object` `getEJBHome(javax.naming.InitialContext context, java.lang.String beanJndiName)`
`protected java.lang.Class` `getServiceClass(java.lang.String beanJndiName, SOAPService service, MessageContext msgContext)` Get the class description for the EJB Remote or Local Interface, which is what we are interested in exposing to the world (i.e.
`protected java.lang.String` `getServiceClassNameOptionName()` Return the option in the configuration that contains the service class name.
`protected java.lang.String` `getStrOption(java.lang.String optionName, Handler service)` Get a String option by looking first in the service options, and then at the Handler's options.
`protected java.lang.Object` `invokeMethod(MessageContext msgContext, java.lang.reflect.Method method, java.lang.Object obj, java.lang.Object[] argValues)` Override the default implementation such that we can include special handling for `ServerException`.
`protected java.lang.Object` `makeNewServiceObject(MessageContext msgContext, java.lang.String clsName)` Return a object which implements the service.

Methods inherited from class org.apache.axis.providers.java.RPCProvider
`checkMethodName, createResponseBody, getBody, getOperationDesc, processMessage`

Methods inherited from class org.apache.axis.providers.java.JavaProvider
`getServiceClassName, getServiceObject, initServiceDesc, invoke`

Methods inherited from class org.apache.axis.providers.BasicProvider
`addOperation, generateWSDL, getOperationName, getOperationNames, getOperationQNames`

Methods inherited from class org.apache.axis.handlers.BasicHandler
`canHandleBlock, cleanup, getDeploymentData, getName, getOption, getOptions, getUnderstoodHeaders, init, initHashtable, onFault, setName, setOption, setOptionDefault, setOptions, setOptionsLockable`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### log

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

### entLog

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

### OPTION_BEANNAME

    public static final java.lang.String OPTION_BEANNAME

See Also:
  Constant Field Values

### OPTION_HOMEINTERFACENAME

    public static final java.lang.String OPTION_HOMEINTERFACENAME

See Also:
  Constant Field Values

### OPTION_REMOTEINTERFACENAME

    public static final java.lang.String OPTION_REMOTEINTERFACENAME

See Also:
  Constant Field Values

### OPTION_LOCALHOMEINTERFACENAME

    public static final java.lang.String OPTION_LOCALHOMEINTERFACENAME

See Also:
  Constant Field Values

### OPTION_LOCALINTERFACENAME

    public static final java.lang.String OPTION_LOCALINTERFACENAME

See Also:
  Constant Field Values

### jndiContextClass

    public static final java.lang.String jndiContextClass

See Also:
  Constant Field Values

### jndiURL

    public static final java.lang.String jndiURL

See Also:
  Constant Field Values

### jndiUsername

    public static final java.lang.String jndiUsername

See Also:
  Constant Field Values

### jndiPassword

    public static final java.lang.String jndiPassword

See Also:
  Constant Field Values

### empty_class_array

    protected static final java.lang.Class[] empty_class_array

### empty_object_array

    protected static final java.lang.Object[] empty_object_array

Constructor Detail

### EJBProvider

    public EJBProvider()

Method Detail

### makeNewServiceObject

    protected java.lang.Object makeNewServiceObject(MessageContext msgContext,
                                                    java.lang.String clsName)
                                             throws java.lang.Exception

  Return a object which implements the service.

  Overrides:
    `makeNewServiceObject` in class `JavaProvider`
  Parameters:
    `msgContext` - the message context
    `clsName` - The JNDI name of the EJB home class
  Returns:
    an object that implements the service
  Throws:
    `java.lang.Exception`

### getServiceClassNameOptionName

    protected java.lang.String getServiceClassNameOptionName()

  Return the option in the configuration that contains the service class name. In the EJB case, it is the JNDI name of the bean.

  Overrides:
    `getServiceClassNameOptionName` in class `JavaProvider`

### getStrOption

    protected java.lang.String getStrOption(java.lang.String optionName,
                                            Handler service)

  Get a String option by looking first in the service options, and then at the Handler's options. This allows defaults to be specified at the provider level, and then overriden for particular services.

  Parameters:
    `optionName` - the option to retrieve
  Returns:
    String the value of the option or null if not found in either scope

### getServiceClass

    protected java.lang.Class getServiceClass(java.lang.String beanJndiName,
                                              SOAPService service,
                                              MessageContext msgContext)
                                       throws AxisFault

  Get the class description for the EJB Remote or Local Interface, which is what we are interested in exposing to the world (i.e. in WSDL).

  Overrides:
    `getServiceClass` in class `JavaProvider`
  Parameters:
    `msgContext` - the message context (can be null)
    `beanJndiName` - the JNDI name of the EJB
  Returns:
    the class info of the EJB remote or local interface
  Throws:
    `AxisFault`

### getCachedContext

    protected javax.naming.InitialContext getCachedContext()
                                                    throws javax.naming.NamingException

  Throws:
    `javax.naming.NamingException`

### getContext

    protected javax.naming.InitialContext getContext(java.util.Properties properties)
                                              throws AxisFault,
                                                     javax.naming.NamingException

  Throws:
    `AxisFault`
    `javax.naming.NamingException`

### getEJBHome

    protected java.lang.Object getEJBHome(javax.naming.InitialContext context,
                                          java.lang.String beanJndiName)
                                   throws AxisFault,
                                          javax.naming.NamingException

  Throws:
    `AxisFault`
    `javax.naming.NamingException`

### invokeMethod

    protected java.lang.Object invokeMethod(MessageContext msgContext,
                                            java.lang.reflect.Method method,
                                            java.lang.Object obj,
                                            java.lang.Object[] argValues)
                                     throws java.lang.Exception

  Override the default implementation such that we can include special handling for `ServerException`.

  Converts `ServerException` exceptions to `InvocationTargetException` exceptions with the same cause. This allows the axis framework to create a SOAP fault.

  Overrides:
    `invokeMethod` in class `RPCProvider`
  Parameters:
    `msgContext` - MessageContext
    `method` - the target method.
    `obj` - the target object
    `argValues` - the method arguments
  Throws:
    `java.lang.Exception`
  See Also:
    `RPCProvider.invokeMethod(org.apache.axis.MessageContext, java.lang.reflect.Method, java.lang.Object, java.lang.Object[])`

Copyright © 2005 Apache Web Services Project. All Rights Reserved.