jmx-exportedメソッドを使って簡単なアプリケーションを実行しようとしています。私は(クラスパスにある「@Configuration」の春コンテキストとCGLIB)のようにそれを実行します。私はそれを実行したときにSpring MBeanExporter - MBeanに名前をつける
package com.sopovs.moradanen.jmx;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jmx.export.MBeanExporter;
import org.springframework.stereotype.Component;
@Component
@Configuration
public class SpringJmxTest {
public static void main(String[] args) {
new AnnotationConfigApplicationContext("com.sopovs.moradanen.jmx");
while (true) {
Thread.yield();
}
}
@Bean
public MBeanExporter createJmxExporter() {
return new MBeanExporter();
}
public interface FooBarMBean {
public String hello();
}
@Component
public static class FooBar implements FooBarMBean {
@Override
public String hello() {
return "Hello";
}
}
}
は、しかし、私は得る:javax.management.MalformedObjectNameExceptionを:キーのプロパティを空にすることはできません。
@Component
public static class FooBar implements FooBarMBean, SelfNaming {
@Override
public String hello() {
return "Hello";
}
@Override
public ObjectName getObjectName() throws MalformedObjectNameException {
return new ObjectName("fooBar:name=" + getClass().getName());
}
}
しかし、MBeanの名前を指定する方が良い方法はありますか?
おかげで多くのことを。この答えを変更してxmlを持たないようにするのはとても簡単です。もし誰かがそれを必要とするなら、コメントに注意してください。 –
私は本当にxmlなしでそれを持っていただければ幸いです!私は立ち往生しています.... – user16655