|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
java.lang.Objectjava.rmi.server.RemoteObject
java.rmi.server.RemoteServer
java.rmi.activation.Activatable
public abstract class Activatable
Activatable 类为那些需要进行持久访问并能由系统激活的远程对象提供支持。
对于构造方法和静态 exportObject 方法,可以像 UnicastRemoteObject 中所描述的那样获得将被导出的远程对象的 stub。
试图显式序列化此类的实例将失败。
| 字段摘要 |
|---|
| 从类 java.rmi.server.RemoteObject 继承的字段 |
|---|
ref |
| 构造方法摘要 | |
|---|---|
protected |
Activatable(ActivationID id,
int port)
构造方法用于在指定端口上激活/导出对象。 |
protected |
Activatable(ActivationID id,
int port,
RMIClientSocketFactory csf,
RMIServerSocketFactory ssf)
构造方法用于在指定端口上激活/导出对象。 |
protected |
Activatable(String location,
MarshalledObject<?> data,
boolean restart,
int port)
构造一个可激活的远程对象:注册此对象的激活描述符(使用指定的位置、数据和重启模式),并使用指定的端口输出该对象。 |
protected |
Activatable(String location,
MarshalledObject<?> data,
boolean restart,
int port,
RMIClientSocketFactory csf,
RMIServerSocketFactory ssf)
构造一个可激活远程对象:注册此对象的激活描述符(使用指定的位置、数据和重启模式),并使用指定的端口、指定的客户端和服务器套接字工厂输出该对象。 |
| 方法摘要 | |
|---|---|
static Remote |
exportObject(Remote obj,
ActivationID id,
int port)
将可激活远程对象导出到 RMI 运行库中,使该对象能接收传入的调用。 |
static Remote |
exportObject(Remote obj,
ActivationID id,
int port,
RMIClientSocketFactory csf,
RMIServerSocketFactory ssf)
将可激活远程对象导出到 RMI 运行库中,使该对象能接收传入的调用。 |
static ActivationID |
exportObject(Remote obj,
String location,
MarshalledObject<?> data,
boolean restart,
int port)
注册指定对象的激活描述符(使用指定的位置、数据和重启模式),并使用指定的端口输出该对象。 |
static ActivationID |
exportObject(Remote obj,
String location,
MarshalledObject<?> data,
boolean restart,
int port,
RMIClientSocketFactory csf,
RMIServerSocketFactory ssf)
注册指定对象的激活描述符(使用指定的位置、数据和重启模式),并使用指定的端口、指定的客户端和服务器套接字工厂输出该对象。 |
protected ActivationID |
getID()
返回对象的激活标识符。 |
static boolean |
inactive(ActivationID id)
通知系统具有相应激活 id 的对象目前没有处于活动状态的。 |
static Remote |
register(ActivationDesc desc)
为可激活远程对象注册一个对象描述符,以便可以根据需要激活它。 |
static boolean |
unexportObject(Remote obj,
boolean force)
从 RMI 运行库中移除远程对象 obj。 |
static void |
unregister(ActivationID id)
为与 id 关联的激活描述符撤消前面的注册。 |
| 从类 java.rmi.server.RemoteServer 继承的方法 |
|---|
getClientHost, getLog, setLog |
| 从类 java.rmi.server.RemoteObject 继承的方法 |
|---|
equals, getRef, hashCode, toString, toStub |
| 从类 java.lang.Object 继承的方法 |
|---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
| 构造方法详细信息 |
|---|
protected Activatable(String location,
MarshalledObject<?> data,
boolean restart,
int port)
throws ActivationException,
RemoteException
注:建议最好使用同时注册和输出可激活远程对象的 Activatable 构造方法,因为不 保证注册和输出远程对象操作是原子操作。相反,应用程序应该分开注册激活描述符和输出远程对象操作,这样才能正确地处理异常。
此方法使用该对象、指定位置、数据、重启模式和端口调用 exportObject 方法。getID() 的后续调用将返回从 exportObject 调用中返回的激活标识符。
location - 此对象的类的位置data - 对象的初始化数据port - 导出对象的端口(如果 port=0,则使用匿名端口)restart - 如果该参数为 true,那么在一次意外崩溃之后,如果重启激活器或者重启对象激活组,则该对象也会被重启(激活);如果参数为 false,则只能根据需要激活该对象。指定 restart 为 true,不强制对新注册的对象立即进行初始激活操作;初始激活是延后进行的。
ActivationException - 如果对象注册失败。
RemoteException - 如果下列操作之一失败:a) 通过激活系统注册对象 b) 将对象导出到 RMI 运行库。
protected Activatable(String location,
MarshalledObject<?> data,
boolean restart,
int port,
RMIClientSocketFactory csf,
RMIServerSocketFactory ssf)
throws ActivationException,
RemoteException
注:建议最好使用同时注册和输出可激活远程对象的 Activatable 构造方法,因为不 保证注册和输出远程对象操作是原子操作。相反,应用程序应该分开注册激活描述符和输出远程对象操作,这样才能正确地处理异常。
此方法使用该对象、指定位置、数据、重启模式、端口、客户端和服务器套接字工厂调用 exportObject 方法。getID() 的后续调用将返回从 exportObject 调用中返回的激活标识符。
location - 此对象的类的位置data - 对象的初始化数据restart - 如果该参数为 true,那么在一次意外崩溃之后,如果重启激活器或者重启对象激活组,则该对象也会被重启(激活);如果该参数为 false,则只能根据需要激活该对象。指定 restart 为 true,不强制对新注册的对象立即进行初始激活操作;初始激活是延后进行的。port - param port 导出对象的端口(如果 port=0,则使用匿名端口)csf - 进行远程对象调用的客户端套接字工厂ssf - 接收远程调用的服务器端套接字工厂
ActivationException - 如果注册失败。
RemoteException - 如果下列操作之一失败:a) 通过激活系统注册对象 b) 将对象导出到 RMI 运行库。
protected Activatable(ActivationID id,
int port)
throws RemoteException
ActivationID),以及
MarshalledObject)。
当此类的具体子类通过上述带两个参数的构造方法激活 时,它必须调用此构造方法。作为构造的副作用,远程对象被“导出”到 RMI 运行库中(在指定 port 上),并且可用于接受从客户端传入的调用。
id - 对象的激活标识符port - 导出对象的端口的端口号
RemoteException - 如果将对象导出到 RMI 运行库中失败
protected Activatable(ActivationID id,
int port,
RMIClientSocketFactory csf,
RMIServerSocketFactory ssf)
throws RemoteException
ActivationID),以及
MarshalledObject)。
当此类的具体子类通过上述带两个参数的构造方法激活 时,它必须调用此构造方法。作为构造的副作用,远程对象被“导出”到 RMI 运行库中(在指定 port 上),并且可用于接受从客户端传入的调用。
id - 对象的激活标识符port - 导出对象的端口的端口号csf - 进行远程对象调用的客户端套接字工厂ssf - 接收远程调用的服务器端套接字工厂
RemoteException - 如果将对象导出到 RMI 运行库中失败| 方法详细信息 |
|---|
protected ActivationID getID()
public static Remote register(ActivationDesc desc)
throws UnknownGroupException,
ActivationException,
RemoteException
desc - 对象的描述符
UnknownGroupException - 如果 desc 中的组 id 未使用激活系统注册
ActivationException - 如果激活系统未运行
RemoteException - 如果远程调用失败
public static boolean inactive(ActivationID id)
throws UnknownObjectException,
ActivationException,
RemoteException
id 的对象目前没有处于活动状态的。如果对象当前处于活动状态的,则该对象从 RMI 运行库“取消导出”(仅在没有任何挂起或者进程内调用时),使其无法再接收传入的调用。此调用通知此 VM 的 ActivationGroup,告诉它对象处于不活动状态,并依次通知其 ActivationMonitor。如果成功完成此调用,则对激活器的后续激活请求将导致对象被重新激活。如果对象被认为是活动的,但是其自身已经取消导出,此操作仍能获得成功。
id - 对象的激活标识符
UnknownObjectException - 如果对象未知(可能已经处于不活动状态)
ActivationException - 如果组处于不活动状态
RemoteException - 如果调用通知监视器失败
public static void unregister(ActivationID id)
throws UnknownObjectException,
ActivationException,
RemoteException
id 关联的激活描述符撤消前面的注册。无法再通过该 id 激活对象。
id - 对象的激活标识符
UnknownObjectException - 如果对象(id)未知
ActivationException - 如果激活系统未运行
RemoteException - 如果对激活系统的远程调用失败
public static ActivationID exportObject(Remote obj,
String location,
MarshalledObject<?> data,
boolean restart,
int port)
throws ActivationException,
RemoteException
注:建议最好使用此方法(以及同时注册和输出可激活远程对象的 Activatable 构造方法),因为不 保证注册和输出远程对象操作是原子操作。相反,应用程序应该分开注册激活描述符和输出远程对象操作,这样才能正确地处理异常。
此方法使用指定对象、位置、数据、重启模式、端口、客户端和服务器套接字工厂(为 null)调用 exportObject 方法,然后返回得到的激活标识符。
obj - 将被导出的对象location - 对象的代码基data - 对象的引导数据restart - 如果该参数为 true,那么在一次意外崩溃之后,如果重启激活器或者重启对象激活组,则该对象也会被重启(激活);如果该参数为 false,则只能根据需要激活该对象。指定 restart 为 true,不强制对新注册的对象立即进行初始激活操作;初始激活是延后进行的。port - 导出对象的端口的端口号(如果 port=0,则使用匿名端口)
desc 所获得的激活标识符
ActivationException - 如果激活组处于不活动状态
RemoteException - 如果对象注册或者导出失败
public static ActivationID exportObject(Remote obj,
String location,
MarshalledObject<?> data,
boolean restart,
int port,
RMIClientSocketFactory csf,
RMIServerSocketFactory ssf)
throws ActivationException,
RemoteException
注:建议最好使用此方法(以及同时注册和输出可激活远程对象的 Activatable 构造方法),因为不 保证注册和输出远程对象操作是原子操作。相反,应用程序应该分开注册激活描述符和输出远程对象操作,这样才能正确地处理异常。
此方法首先按以下步骤注册指定对象的激活描述符。它通过调用 ActivationGroup.getSystem 方法来获取激活系统。然后,此方法通过使用 ActivationDesc 调用激活系统的 registerObject 方法来获取 ActivationID,其中,ActivationDesc 是使用指定对象的类名称、指定位置、数据和重启模式构造的。如果在获取激活系统或注册激活描述符时发生异常,则将向调用者抛出该异常。
然后,此方法使用指定的远程对象、通过注册获取的激活标识符、指定的端口、指定的客户端和服务器套接字工厂调用 exportObject 方法输出对象。如果输出对象时发生异常,那么此方法将尝试使用激活标识符调用激活系统的 unregisterObject 方法来注销激活标识符(通过注册获得)。如果注销标识符时发生异常,则忽略该异常,并向调用者抛出输出对象时发生的原异常。
最后,此方法使用激活标识符和指定远程对象对此 VM 中的激活组调用 activeObject 方法,并向调用者返回激活标识符。
obj - 将被导出的对象location - 对象的代码基data - 对象的引导数据restart - 如果该参数为 true,那么在一次意外崩溃之后,如果重启激活器或者重启对象激活组,则该对象也会被重启(激活);如果该参数为 false,则只能根据需要激活该对象。指定 restart 为 true,不强制对新注册的对象立即进行初始激活操作;初始激活是延后进行的。port - 导出对象的端口的端口号(如果 port=0,则使用匿名端口)csf - 进行远程对象调用的客户端套接字工厂ssf - 接收远程调用的服务器端套接字工厂
ActivationException - 如果激活组处于不活动状态
RemoteException - 如果对象注册或者导出失败
public static Remote exportObject(Remote obj,
ActivationID id,
int port)
throws RemoteException
port 为零,则在匿名端口上导出对象。
在激活过程中,此 exportObject 方法应当由一个未扩展 Activatable 类的“可激活”对象显式调用。对于确实扩展了 Activatable 类的对象,无需直接调用此方法,因为该对象是在构造期间输出的。
obj - 远程对象实现id - 对象的激活标识符port - 导出对象的端口的端口号(如果 port=0,则使用匿名端口)
RemoteException - 如果对象导出失败
public static Remote exportObject(Remote obj,
ActivationID id,
int port,
RMIClientSocketFactory csf,
RMIServerSocketFactory ssf)
throws RemoteException
port 为零,则在匿名端口上导出对象。
在激活过程中,此 exportObject 方法应当由一个未扩展 Activatable 类的“可激活”对象显式调用。对于确实扩展了 Activatable 类的对象,无需直接调用此方法,因为该对象是在构造期间输出的。
obj - 远程对象实现id - 对象的激活标识符port - 导出对象的端口的端口号(如果 port=0,则使用匿名端口)csf - 进行远程对象调用的客户端套接字工厂ssf - 接收远程调用的服务器端套接字工厂
RemoteException - 如果对象导出失败
public static boolean unexportObject(Remote obj,
boolean force)
throws NoSuchObjectException
obj - 要取消导出的远程对象force - 如果该参数为 true,则即使存在挂起或者进程内调用,仍取消导出对象;如果该参数为 false,则仅当不存在挂起或者进程内调用时,才取消导出对象
NoSuchObjectException - 如果远程对象目前没有被导出
|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。