为当前 vm 创建并设置激活组。仅当当前尚未设置激活组时才设置激活组。当 activator
初始化激活组的重建以执行传入的 activate
请求时,激活组使用 creategroup
方法来设置。在组可以通过此方法创建之前,该组必须首先通过 activationsystem
注册。
由 activationgroupdesc
指定的组类必须是 activationgroup
的具体子类,并且具有一个公共的带两个参数的构造方法:组的 activationgroupid
和包含组的初始化数据的 marshalledobject
(从 activationgroupdesc
获得)。
如果 activationgroupdesc
中指定的组类名为 null
,则此方法将像组描述符包含默认激活组实现类的名称一样执行。
注意,如果应用程序创建其自己的自定义激活组,则必须为该组设置安全管理器。否则,该组中的对象不能被激活,默认设置为 java.rmi.rmisecuritymanager
。
如果在该组的 vm 中已经设置安全管理器,此方法首先调用该安全管理器的 checksetfactory
方法。这可能会导致抛出 securityexception
。如果应用程序需要设置不同的安全管理器,则必须确保由组的 activationgroupdesc
所指定的策略文件授予该组必要的权限来设置一个新的安全管理器。(注:如果组下载并设置一个安全管理器,这将是必要的)。
在组被创建之后,通过调用 activegroup
方法通知 activationsystem
该组是活动的,返回该组的 activationmonitor
。应用程序无需独立调用 activegroup
,因为它通过此方法来维护。
一旦组被创建,对 currentgroupid
方法的后续调用将返回此组的标识符,直到组变为不活动的。
- 参数:
id
- 激活组的标识符desc
- 激活组的描述符incarnation
- 组的代号(在组初始化创建时为零)
- 返回:
- 针对该 vm 的激活组
- 抛出:
activationexception
- 如果组已经存在或者如果在组创建过程中发生错误
securityexception
- 如果创建组的权限被拒绝。(注:安全管理器 checksetfactory
方法的默认实现需要 runtimepermission 的 "setfactory")- 从以下版本开始:
- 1.2
- 另请参见:
securitymanager.checksetfactory()