解读Ejb中Local与Remote项目
来源:互联网 发布:mac能玩lol国服吗 编辑:程序博客网 时间:2024/05/02 22:26
在高校平台项目中使用到了Ejb。刚开始的时候,大家都不太懂得Local与Remote的含义、用法以及区别。这里我进行了总结,跟大家分享了一下。
中文翻译过来的意思就很明确了:Local是本地接口;Remote是远程接口。
但是由于Remote接口访问EJB需要经过远程方法调用环节,对性能影响很大,而Local接口访问EJB直接从JVM 中返回EJB的引用,效率很高。所以使用原则是:要尽量使用Local接口,其次使用Remote接口。这就好比你要打长途电话找5个人:你是准备给5个人分别通话(长途-remote);还是准备先和一人通话(长途-remote)然后在由这个人对另外4个(短途-local)分别通知?当然是第二种方式省钱省时省力,性价比更高一些。
所以,我们都会这样设计:
1、web项目调用service使用remote接口。实现就是在web中配置jboss.properties文件,该文件下配置所需的远程接口;
2、SessionBean和EntityBean使用Local接口。本地方式就不用配置文件配置了,只需要你将实体jar包扔到启动的jboss中。
Local与Remote的本质区别是客户端与服务器是否运行在同一个JVM(Java虚拟机)中。如果客户端与服务器运行在同一个JVM中,那么就建议使用Local;如果客户端与服务器不在同一个JVM中,那么只能使用Remote。(有兴趣可以了解下Java虚拟机)
为了让大家对此概念更加清晰,我们对比一下远程与本地访问的过程,来帮助理解。
远程使用工具类CommonEao:
在远程服务器中,我们需要将CommonEao的接口实现都部署在远程服务器的JBoss中(本文服务器都是JBoss),当然CommonEao接口的实现必须是发布称Remote方式的。在本地,我们只需要将CommonEao的接口部署在本地Jboss服务器中就能够正常使用。
这里之所以只有接口就能够使用工具类,就是因为将工具类的实现发布称远程的。CommonEao工具类和本地程序在两个JVM中,如果使用Local的方式部署接口的实现,那么无法完成对该实现的调用。
本地使用工具类CommonEao:
我们就需要将CommonEao接口和实现的jar包都部署到本地Jboss服务器中,然后进行调用,接口的实现发布称Local就OK。
remote是暴露给远程客户/EJB/其他东东的接口,local是内部EJB互相调用的首选(remote的机器性能开销很大),
归根到底:内部Ejb的调用首选Local,而Remote的Ejb项目,只需要通过接口,就能够调用到方法,并实现功能。你暴露一个remote入口给调用者,然后功能用一组local协同完成。这样设计,最划算,也很好理解。
注意:
1、Jboss启动时不能部署Ejb项目,所以只能加接口、实体包扔进lib下随jboss启动部署,Ejb项目必须在deploy里面部署。
- 解读Ejb中Local与Remote项目
- EJB Local与Remote接口区别
- EJB学习笔记四((@Remote与@Local的差异)
- EJB Remote/Local 绑定和JNDI Lookup
- 菜鸟学EJB(二)——在同一个SessionBean中使用@Remote和@Local
- JBoss5中Local与Remote不能同时存在的问题
- 关于github中local与remote不能同步的问题
- Tomcat web工程 调用 JBOSS EJB local及remote
- EJB的Remote访问方式和Local访问方式
- EJB中的Home与Remote接口
- Local EJB
- EJB3.0异常总结---javax.ejb.EJBException: Local and Remote Interfaces cannot have duplicate interface for
- 简说 SSH 隧道-- Local 与 Remote 端口转发
- jboss中远程(remote)和本地(local)的区别
- EJB3中SessionBean使用Local及Remote接口的注意事项
- EJB中的@Local和@LocalBean的区别与用法
- Local and Remote Notifications
- Local/Remote Notification
- oracle数据库中的一些name的说明
- 斐波那契(Fibonacci)的算法优化
- 1934:找x
- hadoop概述
- IOS字符串分割操作
- 解读Ejb中Local与Remote项目
- 大家好我是宋明军
- 1789:数字求和
- Ch2-2: return the nth to the last node data of a singly linked list
- 初次接触产品经理,粗读 《人人都是产品经理》
- python笔记-re模块的几个函数使用
- ARM处理器三级流水线与PC,LR的关系
- 颜色滚动条ColorScroll
- 1939:守形数