你的问题问得很好,说明你真的去思考了。
首先我建议你做两件事,第一找一个RMI的例子,保证能运行同过,然后再回头研究代码;
第二,用J2EE RI服务器发布一个EJB的例子,然后包C:\j2sdkee1.3.1\repository\YourcomputerName\applications\*Server.jar打开,然后看里面和EJB名字相关的类。
下面我说我的理解。事实你写的Remote接口和Home接口,都有自己的实现类,这两个类是由容器生成的。他们真正代理着你的EJB的全部功能调用。
首先我建议你做两件事,第一找一个RMI的例子,保证能运行同过,然后再回头研究代码;
第二,用J2EE RI服务器发布一个EJB的例子,然后包C:\j2sdkee1.3.1\repository\YourcomputerName\applications\*Server.jar打开,然后看里面和EJB名字相关的类。
下面我说我的理解。事实你写的Remote接口和Home接口,都有自己的实现类,这两个类是由容器生成的。他们真正代理着你的EJB的全部功能调用。
解决方案 »
- 请教关于本体中的中文问题
- 如何在struts2的 action中得到<s:optiontransferselect/>标签中的内容
- 写logic:iterate标签,如何美化界面,有的发个漂亮的代码
- 自己制作简单的EJB Statless不能运行的问题求解!!!
- 用分买hibernate 插件
- closeSession什么时候应该用?
- 高手:如何将一个xml文件或dom直接转化为excel的方法,谢谢!!
- 将用dom创建的文档写到文件中出现例外
- 在JTable里面怎么控制列移动(不让它动)?
- 现在看马士兵的spring视频好吗?
- 请问如何将.class文件打包?急!
- 配置开发环境问题,在线等待
最终执行的类是ejb容器自动生成包装后的类,对吧?
部署时向JNDI注册Home对象。
客户端查找JNDI产生Home对象,Home对象生成EJB对象,EJB对象才是真正同客户端打交道的类,他是由容器根据Remote接口生成的。容器管理者组件类(Bean),EJB对象充当其代理。
客户端调用EJB对象的业务方法,EJB对象生成或找到组件实例,调用其对应的方法,返回结果。
----------------------------------------------------
一般情况下是实现一个接口就要去实现这接口的一些方法,但对于Serializable接口来说,只起一个标识作用,就相当于如果你实现了它就会在你的类中作一个标记,而在程序运行的时候JVM会去检查你是否有这个标记,没有的话就会抛出异常~,不知明白没有?==============================================
事实上也确实如此,就像Serializable仅仅是标识对象的可序列化,更准确的说是它所引用的对象是否可以转化为流来传输。但是对象包括其内容是否真的可序列化需要用户来保证,
这一点就像throws RemoteException()仅仅是为了表示这是一个远程方法的调用。