org.openejb.client
Class StatefulEJBHomeHandler
java.lang.Object
org.openejb.client.EJBInvocationHandler
org.openejb.client.EJBHomeHandler
org.openejb.client.StatefulEJBHomeHandler
- All Implemented Interfaces:
- java.io.Externalizable, java.io.Serializable, InvocationHandler, RequestMethods, ResponseCodes
public class StatefulEJBHomeHandler
- extends EJBHomeHandler
This InvocationHandler and its proxy are serializable and can be used by
HomeHandle, Handle, and MetaData to persist and revive handles. It maintains
its original client identity which allows the container to be more discerning about
allowing the revieed proxy to be used. See StatefulContaer manager for more details.
- Author:
- David Blevins, Richard Monson-Haefel
- See Also:
- Serialized Form
Fields inherited from class org.openejb.client.EJBInvocationHandler |
client, ejb, EQUALS, HASHCODE, inProxyMap, isInvalidReference, liveHandleRegistry, primaryKey, request, server, TOSTRING |
Fields inherited from interface org.openejb.client.ResponseCodes |
AUTH_DENIED, AUTH_GRANTED, AUTH_REDIRECT, EJB_APP_EXCEPTION, EJB_ERROR, EJB_OK, EJB_OK_CREATE, EJB_OK_FOUND, EJB_OK_FOUND_COLLECTION, EJB_OK_FOUND_ENUMERATION, EJB_OK_NOT_FOUND, EJB_SYS_EXCEPTION, JNDI_CONTEXT, JNDI_EJBHOME, JNDI_ENUMERATION, JNDI_ERROR, JNDI_NAMING_EXCEPTION, JNDI_NOT_FOUND, JNDI_OK, JNDI_RUNTIME_EXCEPTION |
Fields inherited from interface org.openejb.client.RequestMethods |
AUTH_REQUEST, EJB_HOME_CREATE, EJB_HOME_FIND, EJB_HOME_GET_EJB_META_DATA, EJB_HOME_GET_HOME_HANDLE, EJB_HOME_REMOVE_BY_HANDLE, EJB_HOME_REMOVE_BY_PKEY, EJB_OBJECT_BUSINESS_METHOD, EJB_OBJECT_GET_EJB_HOME, EJB_OBJECT_GET_HANDLE, EJB_OBJECT_GET_PRIMARY_KEY, EJB_OBJECT_IS_IDENTICAL, EJB_OBJECT_REMOVE, EJB_REQUEST, JNDI_LIST, JNDI_LIST_BINDINGS, JNDI_LOOKUP, JNDI_REQUEST, STOP_REQUEST_quit, STOP_REQUEST_Quit, STOP_REQUEST_stop, STOP_REQUEST_Stop |
Method Summary |
protected java.lang.Object |
findX(java.lang.reflect.Method method,
java.lang.Object[] args,
java.lang.Object proxy)
EJB 1.1 Specification, Section 5.5 Session object identity
Since all session objects hide their identity, there is no need to provide a finder for them. |
protected java.lang.Object |
removeByPrimaryKey(java.lang.reflect.Method method,
java.lang.Object[] args,
java.lang.Object proxy)
------------------------------------
5.3.2 Removing a session object
A client may remove a session object using the remove() method on the javax.ejb.EJBObject
interface, or the remove(Handle handle) method of the javax.ejb.EJBHome interface. |
protected java.lang.Object |
removeWithHandle(java.lang.reflect.Method method,
java.lang.Object[] args,
java.lang.Object proxy)
Attempts to remove an EJBObject from the
container system. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
StatefulEJBHomeHandler
public StatefulEJBHomeHandler()
StatefulEJBHomeHandler
public StatefulEJBHomeHandler(EJBMetaDataImpl ejb,
ServerMetaData server,
ClientMetaData client)
findX
protected java.lang.Object findX(java.lang.reflect.Method method,
java.lang.Object[] args,
java.lang.Object proxy)
throws java.lang.Throwable
- EJB 1.1 Specification, Section 5.5 Session object identity
Since all session objects hide their identity, there is no need to provide a finder for them. The home
interface of a session bean must not define any finder methods.
- Specified by:
findX
in class EJBHomeHandler
- Parameters:
method
- args
- proxy
-
- Returns:
- Returns an new EJBObject proxy and handler
- Throws:
java.lang.Throwable
removeByPrimaryKey
protected java.lang.Object removeByPrimaryKey(java.lang.reflect.Method method,
java.lang.Object[] args,
java.lang.Object proxy)
throws java.lang.Throwable
- ------------------------------------
5.3.2 Removing a session object
A client may remove a session object using the remove() method on the javax.ejb.EJBObject
interface, or the remove(Handle handle) method of the javax.ejb.EJBHome interface.
Because session objects do not have primary keys that are accessible to clients, invoking the
javax.ejb.EJBHome.remove(Object primaryKey) method on a session results in the
javax.ejb.RemoveException.
------------------------------------
5.5 Session object identity
Session objects are intended to be private resources used only by the
client that created them. For this reason, session objects, from the
client?s perspective, appear anonymous. In contrast to entity objects,
which expose their identity as a primary key, session objects hide their
identity. As a result, the EJBObject.getPrimaryKey() and
EJBHome.remove(Object primaryKey) methods result in a java.rmi.RemoteException
if called on a session bean. If the EJBMetaData.getPrimaryKeyClass()
method is invoked on a EJBMetaData object for a Session bean, the method throws
the java.lang.RuntimeException.
------------------------------------
Sections 5.3.2 and 5.5 conflict. 5.3.2 says to throw javax.ejb.RemoveException, 5.5 says to
throw java.rmi.RemoteException.
For now, we are going with java.rmi.RemoteException.
- Specified by:
removeByPrimaryKey
in class EJBHomeHandler
- Returns:
- Returns null
- Throws:
java.lang.Throwable
- See Also:
EJBHome
,
EJBHome.remove(javax.ejb.Handle)
removeWithHandle
protected java.lang.Object removeWithHandle(java.lang.reflect.Method method,
java.lang.Object[] args,
java.lang.Object proxy)
throws java.lang.Throwable
Attempts to remove an EJBObject from the
container system. The EJBObject to be removed
is represented by the javax.ejb.Handle object passed
into the remove method in the EJBHome.
This method propogates to the container system.
remove(Handle handle) is a method of javax.ejb.EJBHome
Checks if the caller is authorized to invoke the
javax.ejb.EJBHome.remove on the EJBHome of the
deployment.
- Specified by:
removeWithHandle
in class EJBHomeHandler
- Parameters:
method
- args
-
- Returns:
- Returns null
- Throws:
java.lang.Throwable
- See Also:
EJBHome
,
EJBHome.remove(javax.ejb.Handle)
Copyright © 1999-2011 OpenEJB. All Rights Reserved.