基本的に、 ここで説明されている tomcat から MBeans にアクセスできるように、 http: //docs.oracle.com/javase/tutorial/jmx/remote/custom.htmlのこのチュートリアルのコードを変更しようとしています: http ://wiki.apache.org/tomcat/FAQ/Monitoring
JMX Bean java.lang:type=Memory のインターフェースは java.lang. そのコード例を次に示します。
ObjectName mbeanName = new ObjectName("java.lang:type=Memory");
MemoryMXBean mxbeanProxy2 = JMX.newMXBeanProxy(mbsc, mbeanName, MemoryMXBean.class, true);
MemoryUsage memUsage = mxbeanProxy2.getHeapMemoryUsage();
echo("\nMemory Utilization: " + (memUsage.getUsed()/(double)memUsage.getMax()) * 100 + "%");
ここで、mbsc は MBeanServerConnection のインスタンスです。問題は、Tomcat の組み込み MBean に同様の方法でアクセスしようとすると、Tomcat MBean 用に定義されたインターフェースが見つからないという問題に遭遇することです。JConsole から MBean を監視できますが、そのためにはコードからこれを実行できる必要があります。これは、次のような方法でも実行できることがどこかでわかりました。
ObjectName mbeanName2 = new ObjectName("Catalina:type=ThreadPool,name=\"http-apr-8080\"");
Object value = mbsc.getAttribute(mbeanName, "name");
しかし、これは私にこの例外を与えます: Exception in thread "main" javax.management.AttributeNotFoundException: No such attribute: name at com.sun.jmx.mbeanserver......
かなり基本的なものが欠けているように感じます。しかし、これに関する情報は特に非常に限られているようで、グーグルはあまり役に立ちませんでした.