使用openfusion,例子是grid,IDL编译后产生7个java文件。其中_MyServerStub.java类的作用如下:
在helper类的narrow()方法实现中, 返回的是一个_stub类的实例,也就是说,客户端所有的方法调用,实际调用的是_stub类的方法。
public static demo.grid.MyServer narrow(final org.omg.CORBA.Object obj)
{
if (obj == null)
{
return null;
}
else if (obj instanceof demo.grid.MyServer)
{
return (demo.grid.MyServer)obj;
}
else if (obj._is_a("IDL:demo/grid/MyServer:1.0"))
{
demo.grid._MyServerStub stub;
stub = new demo.grid._MyServerStub();
stub._set_delegate(((org.omg.CORBA.portable.ObjectImpl)obj)._get_delegate());
return stub;
}
else
{
throw new org.omg.CORBA.BAD_PARAM("Narrow failed");
}
}
类图:


本文介绍了如何使用openfusion工具将IDL编译为Java文件,并详细解释了_MyServerStub类在服务器交互过程中的作用。通过narrow()方法,客户端能够正确地获取并调用服务器端的方法。
3866

被折叠的 条评论
为什么被折叠?



