The Spring Framework

## org.springframework.ejb.support
Class AbstractStatefulSessionBean

    java.lang.Object
      org.springframework.ejb.support.AbstractEnterpriseBean
          org.springframework.ejb.support.AbstractSessionBean
              org.springframework.ejb.support.AbstractStatefulSessionBean

All Implemented Interfaces:
  Serializable, EnterpriseBean, SessionBean, SmartSessionBean

    public abstract class AbstractStatefulSessionBean

extends AbstractSessionBean

Convenient base class for EJB 2.x stateful session beans (SFSBs). SFSBs should extend this class, leaving them to implement the `ejbActivate()` and `ejbPassivate()` lifecycle methods to comply with the requirements of the EJB specification.

Note: Subclasses should invoke the `loadBeanFactory()` method in their custom `ejbCreate()` and `ejbActivate()` methods, and should invoke the `unloadBeanFactory()` method in their `ejbPassivate` method.

Note: The default BeanFactoryLocator used by this class's superclass (ContextJndiBeanFactoryLocator) is not serializable. Therefore, when using the default BeanFactoryLocator, or another variant which is not serializable, subclasses must call `setBeanFactoryLocator(null)` in `ejbPassivate()`, with a corresponding call to `setBeanFactoryLocator(xxx)` in `ejbActivate()` unless relying on the default locator.

Author:
  Rod Johnson, Colin Sampaleanu
See Also:
  `ContextJndiBeanFactoryLocator`, Serialized Form

Field Summary

Fields inherited from class org.springframework.ejb.support.AbstractEnterpriseBean
`BEAN_FACTORY_PATH_ENVIRONMENT_KEY`

Constructor Summary
`AbstractStatefulSessionBean()`

Method Summary
`protected void` `loadBeanFactory()` Load a Spring BeanFactory namespace.
`protected void` `unloadBeanFactory()` Unload the Spring BeanFactory instance.

Methods inherited from class org.springframework.ejb.support.AbstractSessionBean
`getSessionContext, setSessionContext`

Methods inherited from class org.springframework.ejb.support.AbstractEnterpriseBean
`ejbRemove, getBeanFactory, onEjbRemove, setBeanFactoryLocator, setBeanFactoryLocatorKey`

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

Methods inherited from interface javax.ejb.SessionBean
`ejbActivate, ejbPassivate, ejbRemove`

Constructor Detail

### AbstractStatefulSessionBean

    public AbstractStatefulSessionBean()

Method Detail

### loadBeanFactory

    protected void loadBeanFactory()
                            throws BeansException

  Load a Spring BeanFactory namespace. Exposed for subclasses to load a BeanFactory in their `ejbCreate()` methods. Those callers would normally want to catch BeansException and rethrow it as `CreateException`. Unless the BeanFactory is known to be serializable, this method must also be called from `ejbActivate()`, to reload a context removed via a call to `unloadBeanFactory()` from the `ejbPassivate()` implementation.

  Throws:
    `BeansException`
  See Also:
    `AbstractStatelessSessionBean.ejbCreate()`

### unloadBeanFactory

    protected void unloadBeanFactory()
                              throws FatalBeanException

  Unload the Spring BeanFactory instance. The default `ejbRemove()` method invokes this method, but subclasses which override `ejbRemove()` must invoke this method themselves.

  Unless the BeanFactory is known to be serializable, this method must also be called from `ejbPassivate()`, with a corresponding call to `loadBeanFactory()` from `ejbActivate()`.

  Throws:
    `FatalBeanException`

The Spring Framework

Copyright © 2002-2008 The Spring Framework.