Module
java.rmi
Package java.rmi
提供RMI包。
RMI是远程方法调用。
这是一种使一个Java虚拟机上的对象能够调用另一个Java虚拟机中对象的方法的机制。
可以以这种方式调用的任何对象都必须实现Remote接口。
当调用这样一个对象时,它的参数是“marshalled”,并从本地虚拟机发送到远程对象,其中参数是“未编组的”。当方法终止时,结果从远程机器编组并发送给呼叫者的虚拟机。
如果方法调用导致抛出异常,则会向调用者指示异常。
- 从以下版本开始:
- 1.1
-
接口摘要 接口 描述 Remote Remote
接口用于标识可以从非本地虚拟机调用其方法的接口。 -
类摘要 Class 描述 MarshalledObject<T> AMarshalledObject
包含具有给它的构造函数的对象的序列化表示的字节流。Naming Naming
类提供了存储和获取对远程对象注册表中远程对象的引用的方法。RMISecurityManager Deprecated. 改用SecurityManager
。 -
异常摘要 异常 描述 AccessException 一个AccessException
通过一定的方法抛出java.rmi.Naming
类(具体bind
,rebind
,和unbind
)和方法java.rmi.activation.ActivationSystem
接口,以指示主叫方不必执行由方法调用所请求的操作。AlreadyBoundException 如果尝试将注册表中的对象绑定到已经具有关联绑定的名称,则抛出一个AlreadyBoundException
。ConnectException 如果连接被拒绝到远程主机进行远程方法调用,则抛出ConnectException
。ConnectIOException 如果在与远程主机进行远程方法调用的连接时发生ConnectIOException
则抛出IOException
。MarshalException 如果在编组远程调用头,远程方法调用的参数或返回值时发生MarshalException
则抛出java.io.IOException
。NoSuchObjectException 如果尝试调用远程虚拟机中不再存在的对象上的方法,则抛出NoSuchObjectException
。NotBoundException 如果尝试在注册表中查找或取消绑定没有关联绑定的名称,则抛出NotBoundException
。RemoteException ARemoteException
是在执行远程方法调用期间可能发生的许多通信相关异常的常见超类。RMISecurityException Deprecated. ServerError 甲ServerError
被抛出作为远程方法调用的结果,当一个Error
任而解编参数,执行远程方法本身,或编组返回值在处理服务器上的调用,被抛出。ServerException 甲ServerException
当被抛出作为远程方法调用的结果RemoteException
在处理服务器上的调用,要么同时解编参数或执行远程方法本身被抛出。ServerRuntimeException Deprecated. 没有替换StubNotFoundException 如果远程对象在导出时无法找到有效的存根类,则抛出StubNotFoundException
。UnexpectedException 如果远程方法调用的客户机接收到调用的结果,那么抛出一个UnexpectedException
,该检查异常不在远程接口的方法的throws
子句中声明的检查的异常类型中。UnknownHostException 如果在创建与远程主机的远程方法调用的连接时发生UnknownHostException
则抛出java.net.UnknownHostException
。UnmarshalException 如果发生以下任何一种UnmarshalException
可以在解组远程方法调用的参数或结果时抛出一个UnmarshalException
:如果在解组调用头时java.io.IOException
调用头,如果一个java.io.IOException
发生解组参数(on服务器端)或返回值(在客户端)。