初学ejb,大家看我理解得咋样?还有几个小问题,请大家帮忙解决一下,up有分!
InitialContext context = new InitialContext();
Object ref= context.lookup(JNDIname);
accHome = (AccountHome)PortableRemoteObject.narrow(ref,AccountHome.class);
ejbObject = accHome.create();
上面即是ejb实例的一个很常见的创建过程
我的理解如下:
上面的创建过程是通过远程接口创建ejb实例的过程:即先通过JNDIname找到ejb本地接口的一个实例,然后再通过本地接口的实例创建ejb实例,PortableRemoteObject.narrow(ref,AccountHome.class);实际上是一个强制转换,由于是远程强制转换,所以要用PortableRemoteObject.narrow()方法。
---------------------------------------------------------------------------------
如果是本地创建得话,那么就可以直接使用本地接口进行创建,不必使用远程接口
---------------------------------------------------------------------------------
另外,我想知道以下问题的答案:
1.每个ejb类是不是都必须实现远程接口和本地接口吗?(这个问题的结论好像是肯定的)
2.远程接口就只有继承EJBObject的接口吗?本地接口就只有继承EJBHome的接口吗?
3.要是第2题的结论是肯定的,那么EJBLocalObject,EJBLocalHome等是什么接口,它们和EJB是什么关
系?
4.要是第2题的结论是否定的,那么EJBLocalObject,EJBLocalHome和EJBObject,EJBHome等接口是什
么关系?什么情况下用到这些接口呢?
请大家讨论!