/**
*UserInfoOut:返回对象
*
*/
public class UserInfoOut implements Serializable {
private static final long serialVersionUID = 1L;
private String id;
private String name;
private String descn;
private String age;
public String getId() {
returnid;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
returnname;
}
public void setName(String name) {
this.name = name;
}
public String getDescn() {
returndescn;
}
public void setDescn(String descn) {
this.descn = descn;
}
public String getAge() {
returnage;
}
public void setAge(String age) {
this.age = age;
}
}
好了到这里算是结束了。至于为什么有这个思路,要结合前面的RMI的问世由来提到的相结合就好理解了。最后就是让我们来构造一个运行主函数类了:
/**
* TestMain:启动
*
*/
public class TestMain {
/**
*@paramargs
*@throwsIOException
*@throwsClassNotFoundException
*@throwsInterruptedException
*/
public static void main(String[] args) throws IOException, ClassNotFoundException, InterruptedException {
//start server
UserInfoImpl impl=new UserInfoImpl();
UserInfoSkeleton skel=new UserInfoSkeleton(impl);
skel.start();
Thread.sleep(6000);
//start client
IUserInfo stub = new UserInfoStub();
UserInfoIn userInfoIn=new UserInfoIn();
userInfoIn.setId("1");
userInfoIn.setParameter("yeshucheng");
UserInfoOut userInfoOut=stub.getValidate(userInfoIn);
System.out.println("return vo's id is :" + userInfoOut.getId());
System.out.println("return vo's name is :" + userInfoOut.getName());
System.out.println("return vo's age is :" + userInfoOut.getAge());
System.out.println("return vo's descn is :" + userInfoOut.getDescn());
}
}
注:这里的代码稍显写的有点乱不够章法,我就这么写这大家就先这么看着。不过代码已经运行成功过了。这里的代码其实还可以优化的更OO