java命名空间javax.management.modelmbean类requiredmodelmbean的类成员方法:
invoke定义及介绍
本文导语:
invoke
public object invoke(string opname,
object[] opargs,
string[] sig)
throws mbeanexception,
reflectionexception
调用 requiredmodelmbean 上的(或通过它调用)某个方法,并返回方法的执行结...
public object invoke(string opname,
object[] opargs,
string[] sig)
throws mbeanexception,
reflectionexception
- 调用 requiredmodelmbean 上的(或通过它调用)某个方法,并返回方法的执行结果。
如果要调用的给定方法连同提供的签名与 requiredmodelmbean 可访问方法中的某个方法匹配,则将调用此匹配的方法。否则将在托管资源上尝试调用给定的方法。
该操作返回的最后一个值可以在该操作的描述符中进行缓存,此描述符位于 modelmbeanoperationinfo 的描述符中。有效值将位于 'value' 字段中(如果有)。如果描述符中的 'currencytimelimit' 字段为:
- <0 则不缓存该值,且该值永远无效。调用 operation 方法。清除 'value' 和 'lastupdatedtimestamp' 字段。
- =0 则总是缓存该值,且该值总有效。返回 'value' 字段。如果没有 'value' 字段,则调用属性的 operation 方法。将 'lastupdatedtimestamp' 字段和 `value' 字段设置为该操作返回的值和当前时间戳。
- >0 表示 'value' 字段有效的秒数。当 'lastupdatedtimestamp' + 'currencytimelimit' > now 时,'value' 字段不再有效。
- 当 'value' 有效时,返回 'value'。
- 当 'value' 不再有效时,调用 operation 方法。更新 'lastupdatedtimestamp' 字段和 `value' 字段。
注:由于与此规范以前版本不一致,因此对于 currencytimelimit
,建议不要使用负值或零。要指示某个缓存的值永远无效,请忽略 currencytimelimit
字段。要指示它总是有效,请为此字段使用一个非常大的值。
- 指定者:
- 接口
dynamicmbean
中的 invoke
- 参数:
opname
- 要调用的方法名称。此名称可以是包括类名称的完全限定方法名,如果类名称是在操作描述符的 'class' 字段中定义的,则此名称也可以仅为方法名称。opargs
- 包含调用操作时要设置的参数的数组sig
- 包含操作签名的数组。用于加载类对象的类加载器与用于加载 mbean(要在其上调用操作)的类加载器相同。
- 返回:
- 该方法返回的对象,它表示在指定托管资源上调用方法的结果。
- 抛出:
mbeanexception
- 包装以下 exceptions 之一:
- 由管理对象调用的方法抛出的 exception。
-
servicenotfoundexception
: 为指定操作或托管资源定义的 modelmbeanoperationinfo 或 descriptor 都不为 null。
-
invalidtargetobjecttypeexception
: 'targettype' 字段值不为 'objectreference'。
reflectionexception
- 包装一个试图调用该方法时抛出的 exception
。
runtimeoperationsexception
- 包装一个 illegalargumentexception
。方法名称为 null。