迄今为止,我们仅仅讨论了使用一个本地业务接口的会话bean。在这样的情况下。本地意味着仅仅能由执行在同一个应用程序server实例的JavaEE组件声明会话bean的依赖性。比如。远程client不可能通过本地接口使用会话bean。

为了容纳远程client,会话bean能够採用@Remote注解来标记它们的业务接口,以声明它是远程可用的。以下代码演示了前面所看到的的HelloService接口的远程版本号语法。

标记一个接口为远程的相当于使其扩展java.rmi.Remote接口。client获取的bean的引用不再是server上的一个本地引用,而是远程方法调用(RMI)的存根(stub),从而能够跨网络调用会话bean的操作。在bean类之上使用远程接口无需特别的支持。

(代码)

把接口变为远程的会影响性能以及怎样处理传递给业务方法的參数。远程业务接口能够在本地执行的server中使用,可是假设方法调用是通过RMI层进行路由。那么这样做可能仍会导致网络开销。远程接口之上的方法的參数也是按值传递。而不是按引用传递。这意味着即时client对会话bean而言是本地,也须要序列化參数。为本地client提供本地接口一般是更好的方法。

本地接口保存常规java方法调用的语义,避免了与网络和RMI相关的开销。

注意:

很多应用程序server提供选项以提高远程接口在本地使用时的性能,当中可能包含能够禁用方法參数的序列化护着坑农全然避开RMI。

当在应用程序代码中使用这些功能时要慎重。以为它们对于不同的应用server是不可移植的。

无状态会话bean(3)---远程业务接口(没有排版)的更多相关文章

  1. EJB开发第一个无状态会话bean、开发EJBclient

    开发第一个无状态会话bean EJB中的三中bean: 会话Bean(Session Bean) 负责与client交互,是编写业务逻辑的地方.在会话bean中能够通过JDBC直接操作数据库.但大多数 ...

  2. EJB开发第一个无状态会话bean、开发EJB客户端

    开发第一个无状态会话bean EJB中的三中bean: 会话Bean(Session Bean) 负责与客户端交互,是编写业务逻辑的地方,在会话bean中可以通过JDBC直接操作数据库,但大多数情况下 ...

  3. JBoss+Ant实现EJB无状态会话bean实例

    EJB分为session bean.entity bean.message-driven bean,session bean又分为无状态会话bean和有状态会话bean. session bean负责 ...

  4. 无状态会话bean(1)---定义

    无状态会话bean用于完毕在单个方法的生命周期内的操作.无状态bean能够实现很多业务操作,可是每一个方法都不能假定不论什么其它的方法会在它之前调用.后半句的意思是如今的你可能不是刚才的你.明天的你可 ...

  5. 无状态会话Bean、有状态会话Bean、CMP与BMP中,哪一种Bean不需要自己书写连接数据库的代码?

    无状态会话Bean.有状态会话Bean.CMP与BMP中,哪一种Bean不需要自己书写连接数据库的代码? A.无状态会话Bean B.有状态会话Bean C.CMP D.BMP 解答:C

  6. (转)Spring Bean Scope 有状态的Bean 无状态的Bean

    有状态会话bean   :每个用户有自己特有的一个实例,在用户的生存期内,bean保持了用户的信息,即“有状态”:一旦用户灭亡(调用结束或实例结束),bean的生命期也告结束.即每个用户最初都会得到一 ...

  7. 有状态的bean和无状态的bean的区别

    有状态会话bean :每个用户有自己特有的一个实例,在用户的生存期内,bean保持了用户的信息,即“有状态”:一旦用户灭亡(调用结束或实例结束),bean的生命期也告结束.即每个用户最初都会得到一个初 ...

  8. 有状态无状态回话bean

    1.有状态(Stateful) 可以在不同的方法调用间保持针对各个客户端的状态 与客户端的联系必须被维持,这样做开销要大一些 有状态也可以这样理解,它存在存储能力,也就是说至少有一个属性来标识它目前的 ...

  9. Ejb in action(四)——购物车实例演示有状态会话Bean

    前面.我们介绍了一个入门实例.事实上那就是无状态回话Bean的经常使用情况. 上一篇文章中.我们介绍了无状态会话Bean和有状态会话Bean的相关概念.为了加深大家对它们的理解,我们一起来实现一个有状 ...

随机推荐

  1. win32 sdk 列表视图控件绘制

    ////////////////////////////////////////////////////////////// LRESULT ListViewCustomDraw(HWND hwnd, ...

  2. ExtJs4 笔记(3) Ext.Ajax 对ajax的支持

    本篇主要介绍一下ExtJs常用的几个对JS语法的扩展支持,包括Ajax封装,函数事件操作封装,还有扩展的常用函数等.Ajax服务端交互式操作是提交到.NET MVC.后续服务端交互都采用这一方式实现. ...

  3. Delphi5的System.pas只有11514行

    Delphi5的System.pas只有11514行(不包含update2),是研究RTL的好材料 相比之下,Delphi6的System.pas只有18118行Delphi7的System.pas只 ...

  4. RR模式下的事务隔离

    <pre name="code" class="html">mysql> select * from t100; Session 2: +-- ...

  5. POJ 3974 最长回文字串(manacher算法)

    题意:给出一个字符串,求出最长回文字串. 思路:一开始我直接上了后缀数组DC3的解法,然后MLE了.看了DISCUSS发现还有一种计算回文字串更加优越的算法,就是manacher算法.就去学习了一下, ...

  6. [置顶] android开发之来电自动拒接并自动回复短信_上课模式app

    上课的时候老师说总是错过电话,对方打来没人接还一遍遍的打,觉得可以有个app在上课期间自动拒接电话,并自动回复短信过去. 当然了,需要权限的. 尝试做了个雏形出来. 界面如下: 主要代码如下: pac ...

  7. queue C++

    #include <iostream> using namespace std; class DequeEmptyException { public: DequeEmptyExcepti ...

  8. JMS的样例

    1.JMS是一个由AS提供的Message服务.它能接受消息产生者(Message Provider)所发出的消息,并把消息转发给消息消费者(Message  Consumer).2.JMS提供2种类 ...

  9. OCP读书笔记(5) - 使用RMAN创建备份

    5.Creating Backups with RMAN 创建备份集 RMAN> backup as backupset format '/u01/app/oracle/backup/rmanb ...

  10. 【ThinkingInC++】52、函数内部的静态变量

    /** * 书本:[ThinkingInC++] * 功能:函数内部的静态变量 * 时间:2014年9月17日18:06:33 * 作者:cutter_point */ #include " ...