所有类
java.rmi.server
类 RemoteObjectInvocationHandler
java.lang.Object
java.rmi.server.RemoteObject
java.rmi.server.RemoteObjectInvocationHandler
-
所有已实现的接口:
-
Serializable, InvocationHandler, Remote
-
public class RemoteObjectInvocationHandler
- extends RemoteObject
- implements InvocationHandler
与 Java Remote Method Invocation(Java 远程方法调用,即 Java RMI)一起使用的 InvocationHandler
接口的实现。此调用处理程序可以与取代预生成 stub 类的动态代理实例一起使用。
不期望应用程序直接使用此类。使用具有 UnicastRemoteObject
或 Activatable
的动态代理导出的远程对象将此类的实例作为该代理的调用处理程序。
-
从以下版本开始:
-
1.5
-
另请参见:
-
序列化表格
RemoteObjectInvocationHandler
public RemoteObjectInvocationHandler(RemoteRef ref)
-
创建一个用指定
RemoteRef
构造的新 RemoteObjectInvocationHandler
。
-
参数:
-
ref
- 远程引用
-
抛出:
-
NullPointerException
- 如果 ref
为 null
invoke
public Object invoke(Object proxy,
Method method,
Object[] args)
throws Throwable
-
处理在封装的代理实例
proxy
上进行的方法调用并返回结果。
RemoteObjectInvocationHandler
按以下方式实现此方法:
如果 method
为以下方法之一,则按下面描述的方式处理:
否则,按以下方式进行远程调用:
- 如果
proxy
不是接口 Remote
的实例,则抛出 IllegalArgumentException
。
- 否则,在此调用处理程序的
RemoteRef
上调用 invoke
方法,传递 proxy
、method
、args
和 method
的哈希码值(在“Java Remote Method Invocation (RMI) 规范”的 section 8.3 中定义)并返回结果。
- 如果
RemoteRef.invoke
抛出异常,且该异常是一个经检查的异常,不能指派给由 proxy
类实现的方法的 throws
子句中的任何异常,则该异常在 UnexpectedException
中包装且抛出该包装的异常。否则,由此方法抛出的 invoke
抛出该异常。
如果包含此调用处理程序的某个有效动态代理类的实例尚未生成参数,则此方法的语义是不确定的。
-
-
指定者:
-
接口
InvocationHandler
中的 invoke
-
-
参数:
-
proxy
- 在其上调用方法的代理实例
-
method
- 与在代理实例上调用的接口方法相对应的 Method
实例
-
args
- 包含传入到代理实例上方法调用的参数值的对象数组;如果该方法不用参数,则为 null
-
返回:
-
要从代理实例上的方法调用返回的值
-
抛出:
-
Throwable
- 从代理实例上的方法调用抛出的异常
-
另请参见:
-
所有类