⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 simplecalcservant.java

📁 有一个介绍corba的ppt和一个用java和corba编程的例子.对初学corba的人很有帮助
💻 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 + -