[email protected]
を使用して、メソッドをMBeanとして公開しました。Springの@ManagedOperationの名前JMX
操作名はメソッド名とは異なりますが、管理操作には属性がありません。例えば
:
@ManagedOperation
public synchronized void clearCache()
{
// do something
}
と私は、この操作は、名前= "ResetCache" と暴露します。
public class CustomMetadataMBeanInfoAssembler extends MetadataMBeanInfoAssembler {
private String getName(final Method method) {
final JmxName annotation = method.getAnnotation(JmxName.class);
if (annotation != null) {
return annotation.value();
}else
return method.getName();
}
}
protected ModelMBeanOperationInfo createModelMBeanOperationInfo(Method method, String name, String beanKey) {
return new ModelMBeanOperationInfo(getName(method),
getOperationDescription(method, beanKey),
getOperationParameters(method, beanKey),
method.getReturnType().getName(),
MBeanOperationInfo.UNKNOWN);
}
}
、あなたは(注釈をして使用してください)あなたがCustomMetadataMBeanInfoAssemblerを配線すると、それは仕事を得る必要があります:
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface JmxName {
String value();
}
そしてMetadataMBeanInfoAssembler
のカスタムサブクラス:
あなたのソリューションはありがたいですが、このソリューションではメソッド操作の説明が変更されていますが、操作の名前を変更する必要があります。 – MJM
@MJM ok、この更新されたソリューションを代わりに試してください –
"更新されたソリューション"が見つかりません。 – MJM