对象被调用,它的参数被整理并从本地虚拟机送至逆整理并使用这些参数的远端虚拟
机 。当该方法结束,结果自远端被整理并送至调用者的虚拟机 。
为使一个远程对象对别的虚拟机可访问,有个程序一般性地用RMI注册器进行注册 。
该程序提供给RMI注册器该远程对象的字符串名字和该远程对象本身 。当有程序欲访
问远程对象,它提供此对象的字符串名字给与远程对象同样的机器上的RMI注册器 。
RMI注册器返回给调用者一个参考(称作“stub”)给远程对象 。当程序收到远程对象
的stub,它就可以调用远程对象的方法(通过stub) 。程序也可获得作为向其它远程对
象的远程调用的结果的远程对象参考,或从其它名字服务获得远程对象的参考 。比如,
程序可以从一个支持文中所定义的模式的LDAP服务器上查寻到一个远程对象的参考 。
RMI注册器接受的字符串名字语法为“rmi://hostname:port/remoteObjectName”,其中
hostname与port标识RMI注册器运行的主机和端口,remoteObjectName是远程对象的
名字 。hostname,port和前缀"rmi:"是可选的 。假如hostname没指定,默认为本地主机
(localhost) 。假如port没指定,默认为1099 。假如remoteObjectName没指定,则对象被
命名为RMI注册器自己 。细节见[RMI] 。
RMI能被不能的协议所支持:JAVA远程方法协议(JRMP)和互联网Inter-ORB协议
(IIOP) 。JRMP是专为RMI设计的协议;IIOP是CORBA对象间通信的标准协议
[CORBA] 。基于IIOP的RMI答应JAVA远程对象与可能是用非JAVA语言编写的
CORBA对象进行通信[RMI–IIOP] 。
2.5.1目录中的表征
使用IIOP的远程对象在目录中被作为CORBA对象参考来表征[CORBA–LDAP] 。
使用JRMP的远程对象在目录中用一种或两种方法来表征:作为整理过的对象,或作为
JNDI参考 。
一个整理过的对象记录远程对象存根(stub)和任何可序列化的或远程的所参考的对象
的代码存根,并且用它们的存根(stubs)代替远程对象 。为将一个远程对象作为整理
过的对象(java.rmi.MarshalledObject)来保存,你应先创建一个它的
java.rmi.MarshalledObject实例 。
java.rmi.Remoterobj=...;
java.rmi.MarshalledObjectmobj=newjava.rmi.MarshalledObject(robj);
然后你可以将此MarshalledObject实例作为javaMarshalledObject来保存 。javaClassName
属性应该包含此远程对象的完整的知名类名 。javaClassNames属性应该包含远程对象的
类和接口的名字 。欲从目录中读回远程对象,先要逆序列化javaSerializedData的内容
以得到一个MarshalledObject(mobj),然后像如下那样从该MarshalledObject恢复:
java.rmi.Remoterobj=(java.rmi.Remote)mobj.get();
本语句返回远程存根(stub),你可用来调用远程方法 。
MarshalledObject只在Java2Platfrom,StandardEdition,V1.2或更高版本的平台上可用 。
因此,作为MarshalledObject保存的远程对象只能被使用Java2Platfrom,StandardEdition,
V1.2或更高版本平台的客户所读取 。
欲将JNDI参考保存为远程对象,你得先创建一个javax.naming.Reference对象实例,因
为它使用远程对象的名字就像它已经或将要被记录在RMI注册器上,并且存在附加限
制"rmi:"前缀 。这里是例子:
javax.naming.Referenceref=newjavax.naming.Reference(
obj.getClass().getName(),
newjavax.naming.StringRefAddr("URL",
"rmi://rserver/AppRemoteObjectX"));
然后你可将此javax.naming.Reference实例作为javaNamingReference保存 。使用JNDI
参考的好处在于可以没有远程对象的参考时进行 。实事上,该远程对象不必在目录中的
推荐阅读
- 轻型目录存取协议 LDAP目录中的CORBA对象参考方案
- v3 简单目录访问协议:传输层安全扩展
- 如何开通存取款短信通知
- word文档自动生成目录的方法步骤
- office2016目录和索引怎么添加
- 如何复制文件到SD卡根目录
- 2011年大益普洱茶品种目录
- 目录和文件有什么区别
- 目录树是什么
- 冬瓜乌鸡汤
