超出长度限制了,所以继续发。
3. RMI-IIOP与JNDI集成:
l RMI-IIOP主要想使用JNDI来做两件事情:
n RMI-IIOP server使用JNDI API将自己发布到一个JNDI树上;例如:
Generator o = new Generator (); //这是一个远程对象
javax.naming.Context ctx= new javax.naming.InitialContext(System.getProperties());
ctx.rebind(“obj”, o);
Synchronized (o) {
o.wait();
}
首先初始化一个远程对象Generator,然后得到Initial context,绑定远程对象到JNDI树上,最后等待客户端调用。
n 客户通过JNDI来查找RMI-IIOP 对象,例如:
javax.naming.Context ctx= new javax.naming.InitialContext(System.getProperties());
Object remoteObj = ctx.lookup(“obj”);
Generator g = (Generator)javax.naming.PortableRemoteObject.narrow(remoteObj, Generator.class);
这里用到了一个RMI-IIOP对象PortableRemoteObject的静态方法——narrow()。这个方法的作用是在JNDI树上查找远程对象时将对象强制装换为远程对象的。为什么不用常用的强制转换方法呢?简短的答案是:为了兼容CORBA。