00001
00026 package org.objectweb.jonas_ejb.container;
00027
00028 import java.io.Serializable;
00029 import java.rmi.RemoteException;
00030
00031 import javax.ejb.EJBHome;
00032 import javax.ejb.HomeHandle;
00033 import javax.naming.Context;
00034 import javax.naming.InitialContext;
00035 import javax.naming.NamingException;
00036 import javax.rmi.PortableRemoteObject;
00037
00038 import org.objectweb.util.monolog.api.BasicLevel;
00039
00046 public class JHomeHandle implements HomeHandle, Serializable {
00047
00051 private String homename = null;
00052
00056 private EJBHome ejbHome = null;
00057
00062 public JHomeHandle(String hname) {
00063 homename = hname;
00064 }
00065
00066
00067
00068
00069
00076 public EJBHome getEJBHome() throws RemoteException {
00077
00078 TraceEjb.interp.log(BasicLevel.DEBUG, homename);
00079 Context ic = null;
00080 if (ejbHome == null) {
00081 try {
00082 ic = new InitialContext();
00083 Object o = ic.lookup(homename);
00084 ejbHome = (EJBHome) PortableRemoteObject.narrow(o, EJBHome.class);
00085 } catch (NamingException e) {
00086 throw new RemoteException("getEJBHome:" + e);
00087 }
00088 }
00089 return ejbHome;
00090 }
00091 }
00092
00093