|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.springframework.jndi.JndiAccessor
org.springframework.jndi.JndiLocatorSupport
org.springframework.jndi.JndiObjectLocator
org.springframework.ejb.access.AbstractSlsbInvokerInterceptor
org.springframework.ejb.access.LocalSlsbInvokerInterceptor
Invoker for a local Stateless Session Bean. Caches the home object. A local EJB home can never go stale.
See JndiObjectLocator
for info on
how to specify the JNDI location of the target EJB.
In a bean container, this class is normally best used as a singleton. However, if that bean container pre-instantiates singletons (as do the XML ApplicationContext variants) you may have a problem if the bean container is loaded before the EJB container loads the target EJB. That is because the JNDI lookup will be performed in the init method of this class and cached, but the EJB will not have been bound at the target location yet. The solution is to not pre-instantiate this factory object, but allow it to be created on first use. In the XML containers, this is controlled via the "lazy-init" attribute.
Field Summary |
Fields inherited from class org.springframework.jndi.JndiLocatorSupport |
CONTAINER_PREFIX |
Fields inherited from class org.springframework.jndi.JndiAccessor |
logger |
Constructor Summary | |
LocalSlsbInvokerInterceptor()
|
Method Summary | |
protected javax.ejb.EJBLocalObject |
getSessionBeanInstance()
Return an EJB instance to delegate the call to. |
java.lang.Object |
invoke(org.aopalliance.intercept.MethodInvocation invocation)
This implementation "creates" a new EJB instance for each invocation. |
protected javax.ejb.EJBLocalObject |
newSessionBeanInstance()
Return a new instance of the stateless session bean. |
protected void |
releaseSessionBeanInstance(javax.ejb.EJBLocalObject ejb)
Release the given EJB instance. |
protected void |
removeSessionBeanInstance(javax.ejb.EJBLocalObject ejb)
Remove the given EJB instance. |
Methods inherited from class org.springframework.ejb.access.AbstractSlsbInvokerInterceptor |
afterPropertiesSet, create, getCreateMethod, getHome, isHomeRefreshable, refreshHome, setCacheHome, setLookupHomeOnStartup |
Methods inherited from class org.springframework.jndi.JndiObjectLocator |
getJndiName, lookup, setJndiName |
Methods inherited from class org.springframework.jndi.JndiLocatorSupport |
convertJndiName, isResourceRef, 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 |
Constructor Detail |
public LocalSlsbInvokerInterceptor()
Method Detail |
public java.lang.Object invoke(org.aopalliance.intercept.MethodInvocation invocation) throws java.lang.Throwable
Alternatively, override getSessionBeanInstance and releaseSessionBeanInstance to change EJB instance creation, for example to hold a single shared EJB instance.
java.lang.Throwable
protected javax.ejb.EJBLocalObject getSessionBeanInstance() throws javax.naming.NamingException, java.lang.reflect.InvocationTargetException
javax.naming.NamingException
- if thrown by JNDI
java.lang.reflect.InvocationTargetException
- if thrown by the create methodnewSessionBeanInstance()
protected void releaseSessionBeanInstance(javax.ejb.EJBLocalObject ejb)
ejb
- the EJB instance to releaseremoveSessionBeanInstance(javax.ejb.EJBLocalObject)
protected javax.ejb.EJBLocalObject newSessionBeanInstance() throws javax.naming.NamingException, java.lang.reflect.InvocationTargetException
javax.naming.NamingException
- if thrown by JNDI
java.lang.reflect.InvocationTargetException
- if thrown by the create methodAbstractSlsbInvokerInterceptor.create()
protected void removeSessionBeanInstance(javax.ejb.EJBLocalObject ejb)
ejb
- the EJB instance to removeEJBLocalObject.remove()
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |