|
The Spring Framework | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.springframework.ejb.support.AbstractStatefulSessionBean
public abstract class AbstractStatefulSessionBean
Convenient superclass for stateful session beans.
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.
ContextJndiBeanFactoryLocator
,
Serialized FormField Summary | |
---|---|
static String |
BEAN_FACTORY_PATH_ENVIRONMENT_KEY
|
Constructor Summary | |
---|---|
AbstractStatefulSessionBean()
|
Method Summary | |
---|---|
void |
ejbRemove()
EJB lifecycle method, implemented to invoke onEjbRemote and unload the BeanFactory afterwards. |
protected BeanFactory |
getBeanFactory()
May be called after ejbCreate(). |
SessionContext |
getSessionContext()
Convenience method for subclasses. |
protected void |
loadBeanFactory()
Load a Spring BeanFactory namespace. |
protected void |
onEjbRemove()
Subclasses must implement this method to do any initialization they would otherwise have done in an ejbRemove() method. |
void |
setBeanFactoryLocator(BeanFactoryLocator beanFactoryLocator)
Set the BeanFactoryLocator to use for this EJB. |
void |
setBeanFactoryLocatorKey(String factoryKey)
Set the bean factory locator key. |
void |
setSessionContext(SessionContext sessionContext)
Set the session context. |
protected void |
unloadBeanFactory()
Unload the Spring BeanFactory instance. |
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 |
Field Detail |
---|
public static final String BEAN_FACTORY_PATH_ENVIRONMENT_KEY
Constructor Detail |
---|
public AbstractStatefulSessionBean()
Method Detail |
---|
protected void loadBeanFactory() throws BeansException
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.
BeansException
AbstractStatelessSessionBean.ejbCreate()
protected void unloadBeanFactory() throws FatalBeanException
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()
.
FatalBeanException
public void setSessionContext(SessionContext sessionContext)
If overriding this method, be sure to invoke this form of it first.
setSessionContext
in interface SessionBean
sessionContext
- the SessionContext for this EJBpublic final SessionContext getSessionContext()
getSessionContext
in interface SmartSessionBean
setSessionContext
methodpublic void setBeanFactoryLocator(BeanFactoryLocator beanFactoryLocator)
Can be invoked before loadBeanFactory, for example in constructor or setSessionContext if you want to override the default locator.
Note that the BeanFactory is automatically loaded by the ejbCreate implementations of AbstractStatelessSessionBean and AbstractMessageDriverBean but needs to be explicitly loaded in custom AbstractStatefulSessionBean ejbCreate methods.
AbstractStatelessSessionBean.ejbCreate()
,
AbstractMessageDrivenBean.ejbCreate()
,
loadBeanFactory()
,
ContextJndiBeanFactoryLocator
public void setBeanFactoryLocatorKey(String factoryKey)
In case of the default BeanFactoryLocator implementation, ContextJndiBeanFactoryLocator, this is the JNDI path. The default value of this property is "java:comp/env/ejb/BeanFactoryPath".
Can be invoked before loadBeanFactory, for example in constructor or setSessionContext if you want to override the default locator key.
BEAN_FACTORY_PATH_ENVIRONMENT_KEY
protected BeanFactory getBeanFactory()
public void ejbRemove()
Don't override it (although it can't be made final): code your shutdown in onEjbRemove.
onEjbRemove()
protected void onEjbRemove()
This implementation is empty, to be overridden in subclasses. The same restrictions apply to the work of this method as to an ejbRemove() method.
|
The Spring Framework | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |