beansession bean在调用各个entity bean。就好比是打长途電话找5个人你是准备给5个人分别通话(长途-remote端口)还是准备先和一人通话(长途-remote端口)然后在由这个人对另 外4个(短途-local)分别通知?我想你会选择第二种情况(facade模式)
local接口可以在与ejb同一个JVM环境中调用,但是不能对它进行远程调用假设你的web容器与所需调用的ejb不在一台服務器上,或者不 在同一个welogic server中时就不能调用local接口在jndi查找的时候不能查找local home,而要查找remote端口 home,也就是说需要实际进行RMI调用而且必须提供Provider
没有抛絀remote端口Exception,因为对local类型接口的调用不是RMI,所以的对local接口的调用效率要高于对remote端口对象的调 用针对这点对EJB的设计提出以下建议:
1、如果你的ejb客戶只可能存在于与ejb相同app server,或者说同一个JVM环境中时你可以只生成local类型接口(包括EJBHome 与EJBObject),如果你需要在与EJB容器不同的JVM环境中调用你的EJB的话伱必须生成remote端口类型的接口(包括EJBHome 与EJBObject);
3、如果你不是远程调用EJB的话,使用EJB时建议调用local接口这样效率高,因为远程调用就意味着建立网络連接效率必然不如local调用。
4、在jb7中设计EJB时默认情况下只给你生成local类型接口,所以你需要在设计EJB时把interfaces设成:local/remote端口这样的话你的EJB至少会有5個java文件