📄 simplecalcservant.java
字号:
import calc.*;
import org.omg.CosNaming.*; //要使用CORBA的名字服务
import org.omg.CORBA.*; //使用CORBA服务
import org.omg.CosNaming.NamingContextPackage.*;//名字服务的例外处理;
class SimpleCalcServant extends calculatorPOA {
public int add(int x, int y) {
return x + y;
}
public static void main(String args[]) {
try {
System.out.println("Createing and initialzing the ORB");
//建立ORB对象:
ORB orb = ORB.init(args, null);
//从始终存在的 rootPOA
//设置可移植对象适配器
org.omg.PortableServer.POA rootPOA =
org.omg.PortableServer.POAHelper.narrow(
orb.resolve_initial_references("RootPOA"));
//POA 管理器是一种封装了 POA 处理状态的对象,所以,我们使用 POA 管理器,将 //发给 servant 的请求排队。
org.omg.PortableServer.POAManager manager =
rootPOA.the_POAManager();
//激活根POA
manager.activate();
//构建服务器对象,并把它转换为CORBA对象
SimpleCalcServant scs = new SimpleCalcServant ();
org.omg.CORBA.Object ref = rootPOA.servant_to_reference(scs);
//用object_to_string方法获取IOR,并打印出来
System.out.println("IOR: " + orb.object_to_string(ref));
//用resolve_initial_references方法获得命名对象(NameService)服务,
org.omg.CORBA.Object objRef =
orb.resolve_initial_references("NameService");
//把来自一般的CORBA对象服务缩小为来自NamingContext对象的服务。
NamingContext ncRef = NamingContextHelper.narrow(objRef);
//使用NameComponent 类为我们的服务者创建描述符
NameComponent nc = new NameComponent("calculator", "object");
NameComponent path[]= {nc};
//用rebind方法将服务对象与描述符邦定起来
ncRef.rebind(path, ref);
//等待客户端调用
System.out.println("SimpleCalcSvr is running!");
orb.run();
} catch (Exception e) {
System.out.println("ERROR : " + e);
e.printStackTrace(System.out);
}
} // main()
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -