Mina程序的JMX支持

原文地址:JMX Support

Java管理扩展(JMX)是用于管理和监控Java应用程序。本教程将向您提供一个例子: 怎样建立JMX可用的Mina应用程序。本教程的目的是帮助你让JMX技术集成基于MINA的应用程序。在本教程中,我们将整合MINA-JMX类到虚拟(想象)服务器示例程序。

添加JMX支持

为使JMX支持Mina应用程序我们需要先做好如下操作:

  • 创建/获取 MBean服务器
  • 实例化所需的mbean(IoAcceptor IoFilter)
  • 与MBean服务器注册MBean

剩下来的时间我们会根据\src\main\java\org\apache\mina\example\imagine\step3\server\ImageServer.java来进行讨论。

创建或获取MBean服务端

// create a JMX MBean Server server instance
MBeanServer mBeanServer = ManagementFactory.getPlatformMBeanServer();

这一行代码是获取MBean服务端实例。

实例化MBean(s)

我们为IoService创建一个MBean:

// create a JMX-aware bean that wraps a MINA IoService object.  In this
// case, a NioSocketAcceptor.
IoServiceMBean acceptorMBean = new IoServiceMBean( acceptor );

创建一个IoService MBean。它接受通过JMX的接收器实例。相似地,您可以添加IoFilterMBean和其他自定义MBeans。

通过MBean服务器注册MBean

// create a JMX ObjectName.  This has to be in a specific format.
ObjectName acceptorName = new ObjectName( acceptor.getClass().getPackage().getName() +
        ":type=acceptor,name=" + acceptor.getClass().getSimpleName());

// register the bean on the MBeanServer.  Without this line, no JMX will happen for
// this acceptor.
mBeanServer.registerMBean( acceptorMBean, acceptorName );

我们创建一个对象名,需要用作访问MBean的逻辑名称和注册MBean的MBean服务器。现在我们的应用程序中启用JMX。让我们看它的实际应用。

启动虚拟的MBean服务器端

如果你使用Java 5 或者更早版本:

java -Dcom.sun.management.jmxremote -classpath <CLASSPATH> org.apache.mina.example.imagine.step3.server.ImageServer

如果你使用Java 6:

java  -classpath <CLASSPATH> }}{{{}org.apache.mina.example.imagine.step3.server.ImageServer

启动JConsole

使用如下命令启动Jconsole:

/bin/jconsole

我们可以看到不同的属性和操作所暴露的MBeans。

时间: 2024-11-08 21:44:35

Mina程序的JMX支持的相关文章

针对微信小程序目前不支持require(&quot;/根目录/。。。。.js&quot;)

针对微信小程序目前不支持require("/根目录/.....js")解决方法1.在app.js定义个全局引用2.页面中要用到的时候可以将作用域this传过去方法中就可以通过this获取到当前页面page对象了..如: 原文链接:http://bbs.jointforce.com/topic/24268

原生微信小程序脚手架(支持npm)

微信小程序支持npm 为了支持生态扩展,社区贡献者可以提供更加丰富的功能,已经支持了第三方小程序开发功能,见如下地址. 微信小程序支持npm https://developers.weixin.qq.com/miniprogram/dev/devtools/npm.html 从小程序基础库版本 2.2.1 或以上.及开发者工具 1.02.1808300 或以上开始,小程序支持使用 npm 安装第三方包. 此文档要求开发者们对 npm 有一定的了解,因此不会再去介绍 npm 的基本功能.如若之前未

简单的文件同步备份程序,仅支持单向同步_程序及源代码

1. 程序 http://files.cnblogs.com/files/fjwuyongzhi/FileSync.zip 2. 源代码 http://files.cnblogs.com/files/fjwuyongzhi/FileSync2016080405.rar 此备份程序,主要用于办公云化,将文件备份到本地电脑等(如下图), 也可以用于其它单向的文件备份的情况. 免责声明:本程序不提供任何承诺,请自行确认.

Mina 第一个mina程序(一)

引入两个jar包 : mina-core-2.0.3.jar slf4j-api-1.6.0.jar 服务端编写 : Server和handler Server: public class MyServer { public static void main(String[] args) throws IOException { // 初始化了服务端的TCP/IP 的基于NIO 的套接字 //IoAcceptor的抽象是IoServivce :服务端 IoAcceptor acceptor =

LR解决不能自动打开程序和不支持的浏览器的录制问题

loadrunner不能自动打开浏览器和应用程序,或者使用一些特殊应用必须使用google浏览,所以没法进行录制工作.这时我们可以通过LR中中端口应映功能,实现脚本录制. 1.新建脚本,选择要使用协议(eg:web http) 2.开始录制脚本 recording中设置如下:Program to record项填写:LR安装目录下bin目录下wplus_init_wsock.exe(eg:C:\Program Files\Mercury\LoadRunner\bin\wplus_init_wso

微信小程序web-view不支持打开非业务域名解决思路

问题起因: 我这的微信小程序小程序需要跳转到一个第三方的网站,然后就用web-view插件进行页面跳转,就会提示我出现非业务域名无法打开. 解决思路: 1.(不成功,安卓手机可以通过,iOS通过不了)通过微信公众平台的小程序开发文档发现在 设置-开发设置-业务域名中来设置业务域名,在这里我用的是自己域名和服务器(通过SSL证书的绑定)搭了一个静态网址作为平台进行跳转到第三方链接. 2.(成功)不去链接第三方网址,自己写了一个需求简易网站发布(域名需要绑定SSL证书) 注意:在这里我用的是Ngin

ng-init 指令初始化 AngularJS 应用程序变量并支持html5

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title></title> <link rel="stylesheet" href=""> &l

怎样编写支持命令行选项的程序

Linux下的程序,常常支持N多的命令行选项.那么,我们怎样编写支持命令行选项的程序呢. 以下给出两个演示样例. 演示样例1,简单的命令行选项. 以下的程序,支持4个选项, -i,-n,-s,-d 编译后,能够这样运行 (选项之间的顺序无所谓): ./a.out   -i  -n 100  -s hahaha  -d 好了,以下是代码. #include <stdio.h> #include <unistd.h> #include <stdlib.h> int enab

ios 6和 ios 7适配问题,让程序同时支持iOS 6和iOS 7,setEdgesForExtendedLayout

由于各种原因,我们的程序需要同时支持iOS 7以及之前的版本(例如iOS 6),也就是说开发者不得不同时在iOS 7和iOS 6之间进行开发.实际上开发者对此是比较讨厌的. iOS 7中的布局问题 下面是非常简单的一个程序,运行在iOS 6中的界面: 而要是运行在iOS 7的模拟器中,会看不到label了: 这是为什么呢?我们对其reveal一下看看吧: 从上图可以看出,实际上label躲在NavigationBar后面了.在iOS 7中,苹果引入了一个新的属性,叫做[UIViewControl