Module java.rmi
Package java.rmi
package java.rmi
提供了RMI包。RMI是远程方法调用的机制。它使得一个Java虚拟机上的对象能够调用另一个Java虚拟机上对象的方法。任何可以通过这种方式调用的对象必须实现Remote接口。当调用这样的对象时,其参数被“编组”并从本地虚拟机发送到远程虚拟机,在那里参数被“解组”。当方法终止时,结果从远程机器编组并发送到调用者的虚拟机。如果方法调用导致抛出异常,则向调用者指示异常。
- 自版本:
- 1.1
-
ClassDescription当
java.rmi.Naming
类的某些方法(特别是bind
、rebind
和unbind
)抛出AccessException
时,表示调用者没有权限执行方法调用请求的操作。如果尝试将对象绑定到已在注册表中具有关联绑定的名称,则会抛出AlreadyBoundException
。如果拒绝与远程主机建立远程方法调用的连接,则会抛出ConnectException
。如果在进行远程方法调用时发生IOException
,则会抛出ConnectIOException
。如果在对远程方法调用的远程调用头、参数或返回值进行编组时发生java.io.IOException
,则会抛出MarshalException
。MarshalledObject
包含通过其构造函数给定的对象的序列化表示的字节流。Naming
类提供了存储和获取远程对象引用的方法。如果尝试在远程虚拟机中调用不再存在的对象的方法,则会抛出NoSuchObjectException
。如果尝试在注册表中查找或解除绑定一个没有关联绑定的名称,则会抛出NotBoundException
。Remote
接口用于标识其方法可以从非本地虚拟机调用的接口。RemoteException
是在远程方法调用执行过程中可能发生的一系列与通信相关的异常的通用超类。Deprecated.Deprecated, for removal: This API element is subject to removal in a future version.This class is only useful in conjunction with the Security Manager, which is deprecated and subject to removal in a future release.在服务器端处理调用时,如果在解组参数、执行远程方法本身或编组返回值时抛出Error
,则会抛出ServerError
。在服务器端处理调用时,如果在解组参数或执行远程方法本身时抛出RemoteException
,则会抛出ServerException
。Deprecated.no replacement如果在导出远程对象时找不到有效的存根类,则会抛出StubNotFoundException
。如果远程方法调用的客户端接收到一个在远程接口方法的throws
子句中声明的已检查异常之外的已检查异常,则会抛出UnexpectedException
。如果在创建与远程主机的连接时发生java.net.UnknownHostException
,则会抛出UnknownHostException
。如果在远程方法调用的参数或结果的解组过程中发生以下任何条件:解组调用头时发生异常、返回值协议无效、在服务器端解组参数(客户端端)或返回值(客户端端)时发生java.io.IOException
,则会抛出UnmarshalException
。
SecurityException
instead.