之前的那篇文章是通过命名服务来获得server端的实现类的,在CORBA中还有一种方式,是通过ior文件来获取实现类对象的。ior文件就是将server端的实现类转换成一个字符串存到后缀名为ior的文件中,在client端通过读取这个文件中的字符串来获得实现类的对象。
这里只贴出server和client的代码,其余代码和之前的HelloWorld大同小异。
server:
package test;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import org.omg.CORBA.ORB;
import org.omg.CORBA.ORBPackage.InvalidName;
import org.omg.PortableServer.POA;
import org.omg.PortableServer.POAHelper;
import org.omg.PortableServer.POAManagerPackage.AdapterInactive;
public class Server {
public static void main(String[] args) throws InvalidName, AdapterInactive, IOException {
//创建一个ORB实例
ORB orb = ORB.init(args, null);
//拿到RootPOA的引用
POA root = POAHelper.narrow(orb.resolve_initial_references("RootPOA"));//get