EJB的存根和骨架的工作原理 - 编程入门网
;
String method = (String)inStream.readObject();
// check method name
if (method.equals("age")) {
// execute object server''s business method
int age = myServer.getAge();
ObjectOutputStream outStream =
new ObjectOutputStream(socket.getOutputStream());
// return result to stub
outStream.writeInt(age);
outStream.flush();
}
if(method.equals("name")) {
// execute object server''s business method
String name = myServer.getName();
ObjectOutputStream outStream =
new ObjectOutputStream(socket.getOutputStream());
// return result to stub
outStream.writeObject(name);
outStream.flush();
}
}
} catch(Throwable t) {
t.printStackTrace();
System.exit(0);
}
}
public static void main(String args []) {
// new object server
PersonServer person = new PersonServer("Richard", 34);
Person_Skeleton skel = new Person_Skeleton(person);
skel.start();
}
}
Skeleton类extends from Thread,它长驻在后台运行,随时接收client发过来的request。并根据发送过来的key去调用相应的business method。 EJB的存根和骨架的工作原理(4)时间:2011-04-305、最后一个,Client的实现 代码:
Client的本质是,它要知道Person接口的定义,并实例一个Person_Stub,通过Stub来调用business method,至于Stub怎么去和Server沟通,Client就不用管了。 注意它的写法:
而不是
为什么?因为要面向接口编程嘛,呵呵! //RMI实质上就是生成2个类stub,skeleton来进行参数和返回值的传递,采用值传递方式 //类似于以前写的聊天室程序,被传递的对象应实现java.io.Serializable接口 EJB的存根和骨架的工作原理(5)时间:2011-04-30二、Websphere实现 EJB类一览 这里结合WebSphere来讲讲各个类的调用关系吧! 假定我们要创建一个读取User信息的SessionBean,需要我们写的有3个文件: 1、UserServiceHome.java Home接口 2、UserService.java Remote接口 3、UserServiceBean.java Bean实现 WSAD最终会生成10个class。其它7个是什么呢?我们一个一个数过来。 4、_UserServiceHome_Stub.java 这个当然就是Home接口在Client端(动态加载)的Stub类了,它implements UserServiceHome。 5、_EJSRemoteStatelessUserServiceHome_a940aa04_Tie.java Home接口在Server端的Skeleton类,"a940aa04"应该是随机生成的,所有其他的相关class名里都会有这个标志串,Tie是Corba对Skeleton的叫法。 6、EJSRemoteStatelessUserServiceHome_a940aa04.java Home接口在Server端的实现,当然,它也implements UserServiceHome。 7、EJSStatelessUserServiceHomeBean_a940aa04.java 由#6调用,create _UserService_Stub。(为什么#6不能直接create _UserService_Stub呢?后面再讲。) 8、_UserService_Stub.java Remote接口在Client端(动态加载)的Stub类。它implements UserService。 9、_EJSRemoteStatelessUserService_a940aa04_Tie.java Remote接口在Server端的Skeleton类。 10、EJSRemoteStatelessUserService_a940aa04.java Remote接口在Server端的实现, |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |