Identify correct and incorrect statements or examples about the client view of a session
bean's local and remote home interfaces, including the code used by a client to locate
a session bean's home interface.
A client locates a session bean’s home interface using JNDI. For example, the remote home
interface for the Cart
session bean can be located using the following code segment:
Context initialContext = new InitialContext();
CartHome cartHome = (CartHome)javax.rmi.PortableRemoteObject.narrow(
initialContext.lookup(“java:comp/env/ejb/cart”),
CartHome.class);
If the Cart session bean provides a local client view instead of a remote
client view and CartHome is a local home interface, this lookup might
be as follows:
Context initialContext = new InitialContext();
CartHome cartHome = (CartHome)
initialContext.lookup(“java:comp/env/ejb/cart”);
A client can pass a remote home object reference to another application. The receiving
application can use the home interface in the same way that it would use a remote home object
reference obtained via JNDI.
A client can pass a local home object reference to another application through its local
interface. A local home object reference cannot be passed as an argument or result of
a method on an enterprise bean’s remote home or remote interface.
The REMOTE HOME interface allows a client to do the following:
Create a new session object.
Remove a session object (using bean's HANDLE).
Get the javax.ejb.EJBMetaData interface for
the session bean. The javax.ejb.EJBMetaData interface is
intended to allow application assembly tools to discover information about the
session bean, and to allow loose client/server binding and client-side
scripting.
Obtain a handle for the REMOTE home interface. The home handle can
be SERIALIZED and written to stable storage. Later, possibly in a different
JVM, the handle can be deserialized from stable storage and used to obtain back
a reference of the remote home interface.
public interface EJBHome extends Remote {
EJBMetaData getEJBMetaData() throws RemoteException;
HomeHandle getHomeHandle() throws RemoteException;
void remove(Handle handle) throws RemoteException,
RemoveException;
void remove(Object primaryKey) throws RemoteException,
RemoveException; // only Entity EJB !!!
}
The LOCAL HOME interface allows a local client to do the following:
public interface EJBLocalHome {
void remove(Object primaryKey) throws RemoveException,
EJBException; // only Entity EJB !!!
}
EJBMetaData and HomeHandle are ONLY accessible for
REMOTE HOME interfaces.
EJBHome interface extends Remote (marker)
interface.
Session bean can be removed ONLY using it's handle (remote view ONLY), since it does
not have primary key.
Visit http://java.boot.by
for the updates.