Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| The Spring Framework
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.springframework.ejb.access
Class AbstractSlsbInvokerInterceptor

    java.lang.Object
      org.springframework.jndi.JndiAccessor
          org.springframework.jndi.JndiLocatorSupport
              org.springframework.jndi.JndiObjectLocator
                  org.springframework.ejb.access.AbstractSlsbInvokerInterceptor

All Implemented Interfaces:
  Advice, Interceptor, MethodInterceptor, InitializingBean

Direct Known Subclasses:
  AbstractRemoteSlsbInvokerInterceptor, LocalSlsbInvokerInterceptor

    public abstract class AbstractSlsbInvokerInterceptor

extends JndiObjectLocator
implements MethodInterceptor

Base class for AOP interceptors invoking local or remote Stateless Session Beans. Designed for EJB 2.x, but works for EJB 3 Session Beans as well.

Such an interceptor must be the last interceptor in the advice chain. In this case, there is no direct target object: The call is handled in a special way, getting executed on an EJB instance retrieved via an EJB home.

Author:
  Rod Johnson, Juergen Hoeller

Field Summary

Fields inherited from class org.springframework.jndi.JndiLocatorSupport
`CONTAINER_PREFIX`

Fields inherited from class org.springframework.jndi.JndiAccessor
`logger`

Constructor Summary
`AbstractSlsbInvokerInterceptor()`

Method Summary
`void` | `afterPropertiesSet()` Fetches EJB home on startup, if necessary.
`protected Object` | `create()` Invoke the create() method on the cached EJB home object.
`protected Method` | `getCreateMethod(Object home)` Determine the create method of the given EJB home object.
`protected Object` | `getHome()` Return the EJB home object to use.
`protected boolean` | `isHomeRefreshable()` Return whether the cached EJB home object is potentially subject to on-demand refreshing.
`protected void` | `refreshHome()` Refresh the cached home object, if applicable.
`void` | `setCacheHome(boolean cacheHome)` Set whether to cache the EJB home object once it has been located.
`void` | `setLookupHomeOnStartup(boolean lookupHomeOnStartup)` Set whether to look up the EJB home object on startup.

Methods inherited from class org.springframework.jndi.JndiObjectLocator
`getExpectedType, getJndiName, lookup, setExpectedType, setJndiName`

Methods inherited from class org.springframework.jndi.JndiLocatorSupport
`convertJndiName, isResourceRef, lookup, lookup, setResourceRef`

Methods inherited from class org.springframework.jndi.JndiAccessor
`getJndiEnvironment, getJndiTemplate, setJndiEnvironment, setJndiTemplate`

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

Methods inherited from interface org.aopalliance.intercept.MethodInterceptor
`invoke`

Constructor Detail

### AbstractSlsbInvokerInterceptor

    public AbstractSlsbInvokerInterceptor()

Method Detail

### setLookupHomeOnStartup

    public void setLookupHomeOnStartup(boolean lookupHomeOnStartup)

  Set whether to look up the EJB home object on startup. Default is "true".

  Can be turned off to allow for late start of the EJB server. In this case, the EJB home object will be fetched on first access.

  See Also:
    `setCacheHome(boolean)`

### setCacheHome

    public void setCacheHome(boolean cacheHome)

  Set whether to cache the EJB home object once it has been located. Default is "true".

  Can be turned off to allow for hot restart of the EJB server. In this case, the EJB home object will be fetched for each invocation.

  See Also:
    `setLookupHomeOnStartup(boolean)`

### afterPropertiesSet

    public void afterPropertiesSet()
                            throws NamingException

  Fetches EJB home on startup, if necessary.

  Specified by:
    `afterPropertiesSet` in interface `InitializingBean`
  Overrides:
    `afterPropertiesSet` in class `JndiObjectLocator`
  Throws:
    `NamingException`
  See Also:
    `setLookupHomeOnStartup(boolean)`, `refreshHome()`

### refreshHome

    protected void refreshHome()
                        throws NamingException

  Refresh the cached home object, if applicable. Also caches the create method on the home object.

  Throws:
    `NamingException` - if thrown by the JNDI lookup
  See Also:
    `JndiObjectLocator.lookup()`, `getCreateMethod(java.lang.Object)`

### getCreateMethod

    protected Method getCreateMethod(Object home)
                              throws EjbAccessException

  Determine the create method of the given EJB home object.

  Parameters:
    `home` - the EJB home object
  Returns:
    the create method
  Throws:
    `EjbAccessException` - if the method couldn't be retrieved

### getHome

    protected Object getHome()
                      throws NamingException

  Return the EJB home object to use. Called for each invocation.

  Default implementation returns the home created on initialization, if any; else, it invokes lookup to get a new proxy for each invocation.

  Can be overridden in subclasses, for example to cache a home object for a given amount of time before recreating it, or to test the home object whether it is still alive.

  Returns:
    the EJB home object to use for an invocation
  Throws:
    `NamingException` - if proxy creation failed
  See Also:
    `JndiObjectLocator.lookup()`, `getCreateMethod(java.lang.Object)`

### isHomeRefreshable

    protected boolean isHomeRefreshable()

  Return whether the cached EJB home object is potentially subject to on-demand refreshing. Default is "false".

### create

    protected Object create()
                     throws NamingException,
                            InvocationTargetException

  Invoke the create() method on the cached EJB home object.

  Returns:
    a new EJBObject or EJBLocalObject
  Throws:
    `NamingException` - if thrown by JNDI
    `InvocationTargetException` - if thrown by the create method

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| The Spring Framework
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2002-2008 The Spring Framework.