In
my previous post, I explained how to connect to JMX Agent using JConsole. In
this post, I am going to explain how to manage/monitor the JMX beans using a web
browser.
SystemStatistics.java
Application.java
To
manage MBeans via browser, we need HtmlAdaptorServer.
Add
below maven dependency to your project.
<dependency>
<groupId>com.sun.jdmk</groupId>
<artifactId>jmxtools</artifactId>
<version>1.2.1</version>
</dependency>
Step 1: Initialize HtmlAdaptorServer
HtmlAdaptorServer
htmlAdaptorServer = new HtmlAdaptorServer();
ObjectName
adapterName = new
ObjectName("SimpleAgent:name=htmladapter,port=8000");
htmlAdaptorServer.setPort(8000);
Step 2: Register htmlAdaptorServer
with MBeanServer.
MBeanServer
mbs = ManagementFactory.getPlatformMBeanServer();
mbs.registerMBean(htmlAdaptorServer,
adapterName);
Step 3: Start the htmlAdaptorServer
htmlAdaptorServer.start();
Find
the below working application.
SystemStatisticsMBean.java
package com.sample.mbeans; public interface SystemStatisticsMBean { public int readCount(); public int incrementReadCount(); public int decrementReadCount(); public int writeCount(); public int incrementWriteCount(); public int decrementWriteCount(); }
SystemStatistics.java
package com.sample.mbeans; public class SystemStatistics implements SystemStatisticsMBean { private int readCount = 0; private int writeCount = 0; public int getReadCount() { return readCount; } public void setReadCount(int readCount) { this.readCount = readCount; } public int getWriteCount() { return writeCount; } public void setWriteCount(int writeCount) { this.writeCount = writeCount; } @Override public int readCount() { return readCount; } @Override public int incrementReadCount() { // TODO Auto-generated method stub return ++readCount; } @Override public int decrementReadCount() { return --readCount; } @Override public int writeCount() { return writeCount; } @Override public int incrementWriteCount() { return ++writeCount; } @Override public int decrementWriteCount() { return --writeCount; } }
Application.java
package com.sample.app; import java.lang.management.ManagementFactory; import javax.management.MBeanServer; import javax.management.ObjectName; import com.sample.mbeans.SystemStatistics; import com.sample.mbeans.SystemStatisticsMBean; import com.sun.jdmk.comm.HtmlAdaptorServer; public class Application { public static void main(String[] args) throws Exception { ObjectName name = new ObjectName("com.sample.mbean.interfaces:type=SystemStatisticsMBean"); SystemStatisticsMBean mbean = new SystemStatistics(); MBeanServer mbs = ManagementFactory.getPlatformMBeanServer(); mbs.registerMBean(mbean, name); HtmlAdaptorServer htmlAdaptorServer = new HtmlAdaptorServer(); ObjectName adapterName = new ObjectName("SimpleAgent:name=htmladapter,port=8000"); htmlAdaptorServer.setPort(8000); mbs.registerMBean(htmlAdaptorServer, adapterName); htmlAdaptorServer.start(); System.out.println("Waiting forever..."); Thread.sleep(Long.MAX_VALUE); } }
Run
Application.java and open the url ‘http://localhost:8000/’ in browser.
Click
on SystemStatisticsMBean.
Now
you can perform operations.
No comments:
Post a Comment