你的方法一般都在remote中定义,在bean类总实现。而local是对记录的定位,查找!

解决方案 »

  1.   

    local不抛出远程异常。
    传local方法参数为引用传递,传remote方法参数为值传递。
    当你的实体BEAN与它的客户端在同一台机器上时,用LOCAL比较好。可以减少网络负载。
    如果不在同一台机器上,就必须用REMOTE,采用RMI-IIOP技术通过网络访问。
      

  2.   

    如果你的客户端与EJB容器在同一台微机上,那么用local好了;否则用remote
      

  3.   

    定义中说local调用是本地调用,而remote调用必须通过网络,因此local调用应该比remote快很多,但是实际操作中使用weblogic测试发现二者间性能的差异并不明显,我也见过别的网友也发现了类似现象。可能是和服务器的实现有关,但至少,因为对local的调用至少是在同一jvm里面,所以性能应该比remote有所优化。所以如果能使用local尽可能的使用local,但是牵涉到集群的时候可能local调用有问题(基于条件,没有进行这方面的测试)另外补充的是,无论是local还是remote,都必须遵守ejb规范,其中一个原则就是:remote interface throws RemoteException.
      

  4.   

    楼上的说得很好:)学习
    另外,实体bean一般来说都是用local接口,而session实现remote接口对entity bean进行封装,一般不要直接调用entity bean,这个是出于封装性,低耦合,代码复用的考虑
      

  5.   

    当客户程序(session bean也看看做客户程序)和entitybean在同一个jvm上运行时,可以使用local调用,否则只能使用remote调用,对于entitybean的调用,应尽量使用local接口调用
      

  6.   

    jbuilder8中实体bean分local和remote两种,有什么区别啊回答:你的说法本身都不正确。LOCAL和ROMOTE是EJB2。0的规范。不是JB8的规范。而且JB7都有LOCAL和ROMOTE的支持呢。
      其区别在于:如果调用者和EJB在同一个JVM上,使用LOCAL的话相当于直接的方法调用。(节省了网络调用开销)。而ROMOTE是不管在什么地方,都是用远程的方式调用,这和普通的方法掉调用之间有着很大的区别-----增加了网络开销。LOCAL其实是不必要的,但是为了优化实体BEAN,就出现了LOCAL。建议:SESSION调用ENTITY时采用LOCAL。而JAVABEAN调用SESSION时REMOTE。
      

  7.   

    local相当与private,外面的不能调
    remote相当与public,外面的可以调用