0

ここで何度も質問されていることは承知していますが、私の問題を解決できませんでした。POJO を JMX Bean として公開するための基本的な例をセットアップし、それを JConsole で表示したいと考えています。Spring Docsに従っているので、なぜこれが機能しないのかわかりません。

私のコードは

package org.springframework.jmx;

public interface IJmxTestBean {
    public int getAge();
    public void setAge(int age);
    public void setName(String name);
    public String getName();
    public int add(int x, int y);
    public void dontExposeMe();
}

package org.springframework.jmx;

public class JmxTestBean implements IJmxTestBean {

    private String name;
    private int age;
    private boolean isSuperman;

    //getters and setters for each
}

package org.springframework.jmx;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Program {
    public static void main(String[] args) throws InterruptedException {
        ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");
        context.getBean(JmxTestBean.class);
        Thread.sleep(Long.MAX_VALUE);
    }
}

<?xml version="1.0" encoding="UTF-8"?>
<beans>

   <bean id="mbeanServer" class="org.springframework.jmx.support.MBeanServerFactoryBean"/>

   <bean id="exporter" class="org.springframework.jmx.export.MBeanExporter" lazy-init="false">
          <property name="beans">
                 <map>
                        <entry key="bean:name=testBean1" value-ref="testBean"/>
                 </map>
          </property>
          <property name="server" ref="mbeanServer"/>
          <property name="autodetect" value="true"/>
   </bean>

   <bean id="testBean" class="org.springframework.jmx.JmxTestBean">
          <property name="name" value="TEST"/>
          <property name="age" value="100"/>
   </bean>

</beans>

私が試した同様の質問への回答による<context:mbean-server/><context:mbean-export/>、これらは解決しませんでした。

メインメソッドのコードに関連していますか? 私は...の有無にかかわらず試しましたcontext.getBean(...)...

編集SpringのログにはINFO: Located managed bean 'bean:name=testBean1': registering with JMX server as MBean [bean:name=testBean1]、MBeanが表示されないことを除いて、JConsoleのプロセスに接続できると書かれています。

編集#2ロギングを有効にした後、私は見ることができますMBeanExporter:651 - Located managed bean 'bean:name=testBean1': registering with JMX server as MBean [bean:name=testBean1]

4

1 に答える 1