- 论坛徽章:
- 0
|
ejb分为实体bean和sessionBean 和消息驱动Bean
其中实体bean和sessionBean用的较为广泛。
在调用过程中主要是远程接口和home接口。
如:t=client.create();
其中client就是home接口,而create();方法实际返回一个远程的ejb对象.
而此时就可以调用具体的业务方法.
因为要调用的业务方法就在sessionBean的t(远程接口)里,所以还要实现这些方法。
而这些方法在sessionBean里给予具体的实现。
这时就可以完成初步的调用。当然调用还是调接口就可以!
在具体实行方法调用数据库的过程中在完成从数据库给数据模型的复值完成时,在
本地硬盘当中用 java.rmi.MarshalledObject$MarshalledObjectOutputStream 的方法
将已经复值的对象用输出流在本地复制一份。
private void writeObject(ObjectOutputStream oos) throws IOException {
System.out.println(":::::::::::::::::::::::::::::::::::"+oos);
oos.defaultWriteObject();
}
以上的该方法就是写对象的方法。
(实际以后远程调用的就是本地硬盘中的这个
复值的东西)
而在远程调用的时候:
如: l = (ArrayList) m(远程接口调用的远程方法).teacherlist();
在执行该方法之前时,要通过远程先访问数据模型类中的readObject()方法.
private void readObject(ObjectInputStream ois) throws ClassNotFoundException,
IOException {
System.out.println("_______________________________________"+ois);
ois.defaultReadObject();
}
当完成该方法时说明已经获得远程的对象,而这个对象也就是我们需要访问的远程数据.
拿到这个对象时候,在执行 l = (ArrayList) m(远程接口调用的远程方法).teacherlist();方法,
就可以将远程的数据复值给本地的对象 |
|