JMX代码编写
来源:互联网 发布:天庭淘宝店 下载 编辑:程序博客网 时间:2024/05/29 03:01
public class Controller implements ControllerMBean{
private boolean forbiddenBrand = false;
@Override
public boolean isForbiddenBrand() {
return forbiddenBrand;
}
@Override
public void setForbiddenBrand(boolean forbiddenBrand) {
this.forbiddenBrand = forbiddenBrand;
}
@Override
public String status() {
// TODO Auto-generated method stub
return null;
}
@Override
public void start() {
// TODO Auto-generated method stub
}
@Override
public void stop() {
// TODO Auto-generated method stub
}
}
Controller ,ControllerMBean 类名称不能修改,必须固定
public interface ControllerMBean {
public boolean isForbiddenBrand();
public void setForbiddenBrand(boolean forbiddenBrand);
//操作
/**
* 获取当前信息
* @return
*/
public String status();
public void start();
public void stop();
}
动态修改BrandPackageValidator.FORBIDDEN_BRAND字段
public class JmxExecutor {
/**
* 默认生成的该类的LOG记录器,使用slf4j组件。避免产生编译警告,使用protected修饰符。
*/
protected final static Logger LOG = LoggerFactory.getLogger(JmxExecutor.class);
private final static ControllerMBean controller = new Controller();
static {
Executors.newScheduledThreadPool(1).scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
BrandPackageValidator.FORBIDDEN_BRAND = controller.isForbiddenBrand();
}
}, 2, 5, TimeUnit.SECONDS);
}
public void executor() {
// 获得MBeanServer实例
MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
try {
mbs.registerMBean(controller, new ObjectName("apiJmx:name=controller"));
// 创建适配器,用于能够通过浏览器访问MBean
HtmlAdaptorServer adapter = new HtmlAdaptorServer();
adapter.setPort(9797);
mbs.registerMBean(adapter, new ObjectName("apiJmx:name=htmladapter,port=9797"));
adapter.start();
} catch (Exception e) {
LOG.error("jxm运行出错", e);
}
}
}
pom配置
<!-- https://mvnrepository.com/artifact/com.sun.jdmk/jmxtools -->
<dependency>
<groupId>com.sun.jdmk</groupId>
<artifactId>jmxtools</artifactId>
<version>1.2.1</version>
</dependency>
0 0
- JMX代码编写
- JMX代码入门(一)
- JMX代码入门(二)
- JMX客户端访问代码
- Spring JMX客户端连接代码
- 使用 JMX 接口来编写 PMI 应用程序
- JMX
- JMX
- JMX
- JMX
- jmx
- JMX
- JMX
- jmx
- jmx
- JMX
- JMX
- jmx
- linux指令之touch,chattr
- 设计模式之模板方法体会
- PostgreSQL学习第六篇--psql常用连接数据库的方法
- 超级扩展的textview(让我们开启自定义之旅吧
- cookie和session区别
- JMX代码编写
- 从零开始搭建一个完善的MVP开发框架
- C++ 私有构造函数的作用
- 输入一个字符串,同时输入帧头和帧尾(可以是多个字符),将该字符串中合法的帧识别出来. 提示:帧头和帧尾分别是head和tail 字符串”asdheadhauboisoktail”中headhau
- java Integer类的缓存
- 数字转字符串(改)
- 左右滑动实现activity之间的跳转
- Python中字典的操作
- 文本编辑器vim的使用技巧