新手求助--基本概念问题--Local interface与Remote interface//Home interface与Local Home interface?怎么这么多interface?有何区别?

whohu 2003-04-23 04:03:29
小弟是新手,刚刚开始学习EJB,调试了几个小程序,对EJB的一些基本概念还不是很理解;请各位高手,前辈赐教了!
小弟的编程环境是:JB7+Weblogic7,一直以来,小弟调试的程序都是这样的:
一个会话Bean需要定义三个类:
1.Bean Home 接口类;
2.Bean Remote 接口类;
3.Bean 类;
但是,最近看了《EJB 应用开发详解》一书的第三章:无状态会话Bean ,上面有个实例,居然实现了:
远程接口 Remote interface ;
本地接口 Local interface ;
Home接口 Home interface ;

其前面的讲解还涉及到上面的四个interface :
Local interface ;
Remote interface ;
Home interface ;
Local Home interface ;

小弟很疑惑,真的需要那么多接口类的定义吗?
远程接口 Remote interface 与本地接口 Local interface 的各自范围是多大?远程与本地的本质区别体现在哪里?
Home interface 与 Local Home interface 也一样,到底区别在哪里?

他们四个各自的用武之地分别在什么范围?

请各位前辈多多指导!!!
先谢谢各位了!!!
...全文
408 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
whohu 2003-04-28
  • 打赏
  • 举报
回复

谢谢兄弟提醒,我好象想起一些东西了
whohu 2003-04-28
  • 打赏
  • 举报
回复
any other ?/
getdown 2003-04-25
  • 打赏
  • 举报
回复
怎么会没有localhome?
你在生成ejb的时候点在bean的名称上面 interface里面可以选择是local 还是 remote

还是 local/remote 默认的就是local
工作在不同的机器上面 你就要根据jndi命名规范来找 就像java:comp/env/...

这好像是windows的里面的活动目录或者dns一样
whohu 2003-04-24
  • 打赏
  • 举报
回复
由于小弟目前调试的都是一些小程序,所以还没有接触到那种在不同JVM里面运行的程序,楼上的兄弟,能否问一句:
为什么在JB里面生成的EJB里面只有这么三个类:1.Bean Home 接口类;2.Bean Remote 接口类;3.Bean 类; 怎么都没有生成Local Home类,而且这些程序也都是在一个JVM里面运行的?
因为客户端和服务器端都是在同一台机器上,所以它们可以放在一个 peckage 里面,如果他们是工作在不同的机器上,那么
RemoteHome home = (RemoteHome)javax.rmi.PortableRemoteObject.narrow(ctx.lookup("RemoteHome"),RemoteHome.class)
能找到这个接口吗?它会不会说Class RemoteHome not found ???!!!
whohu 2003-04-24
  • 打赏
  • 举报
回复
no Any other suggestion ???
getdown 2003-04-23
  • 打赏
  • 举报
回复
你可以通过home接口里面的create() 创建ejb实例

这个实例就是你的remote接口的实现
RemoteHome home = (RemoteHome)javax.rmi.PortableRemoteObject.narrow(ctx.lookup("RemoteHome"),RemoteHome.class)
此时 RemoteHome为你的远程Home接口
Product product = home.create() Product 为你的远程接口
这样你就可以通过product.get(..)方法调用你ejbbean里面的方法实现。

同样本地接口也一样 只是 上面 LocalHome home = (LocalHome)ctx.lookup("LocalHome"),LocalHome.class)
这个拿来在同一个jvm里面本地调用ejb
zez 2003-04-23
  • 打赏
  • 举报
回复
1.Bean Home 接口类; 这个home用了调用bean的内部方法
2.Bean Remote 接口类; 这是远程接口,远程调用这个接口,调用这个接口里面的方法
3.Bean 类; 类的实现

另外还有local home .功能上和remote home一样,只是这是local的,本地调用
remote或local home接口定义的是提供给客户的方法
比如实体bean里的create; findXXX 等方法
bean home定义的是bean内部的方法
比如setid() ;setName() ;getId() 等等 其中id,name是字段对应的名字.

调用的时候,根据jndi,查找remotehome .然后就可以调用remotehome定义的方法了.比如findXXX
调用findXXX方法返回一个 bean的接口,然后就可以再对这个bean接口调用setXX ;getXX方法 得到bean里对应的字段值...


whohu 2003-04-23
  • 打赏
  • 举报
回复
没有高手吗?

路过的,帮帮忙拉!

分不够,可以再加!

67,542

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧