Spring Framework

org.springframework.ejb.support
Class AbstractStatefulSessionBean

java.lang.Object
  extended by org.springframework.ejb.support.AbstractEnterpriseBean
      extended by org.springframework.ejb.support.AbstractSessionBean
          extended by org.springframework.ejb.support.AbstractStatefulSessionBean
All Implemented Interfaces:
java.io.Serializable, javax.ejb.EnterpriseBean, javax.ejb.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

Spring Framework