启用Jetty 6.1.24的JMX支持并添加自定义MBean

    Jetty是一个高效的Servlet容器,它由纯Java写成,以体积小而著称。它与Tomcat的一个显著的不同是它可以嵌入到其他的Java代码中。这就是说,Jetty可以作为一组Jar文件提供,因此开发者可以在自己的代码中将Servlet容器实例化成一个对象并可以操纵这个对象。Jetty被设计成了可插拔和可扩展的特性,开发者可以容易地修改Jetty以满足自己的需要。由于Jetty的诸多优异特性,Google AppEngine已放弃Tomcat转而采用Jetty作为其Servlet容器。目前Jetty的最新稳定版本是7。本文基于Jetty 6.1.24。

 

    我们先启用Jetty的JMX支持。打开jetty安装目录下的etc/jetty-jmx.xml,将围绕下面两个块的注释去掉:

 

    <Call id="rmiRegistry" class="java.rmi.registry.LocateRegistry" name="createRegistry">
      <Arg type="int">2099</Arg>
    </Call>

 

    <Call id="jmxConnectorServer" class="javax.management.remote.JMXConnectorServerFactory" name="newJMXConnectorServer">
      <Arg>
        <New  class="javax.management.remote.JMXServiceURL">
          <Arg>service:jmx:rmi://localhost:2100/jndi/rmi://localhost:2099/jmxrmi</Arg>
        </New>
      </Arg>
      <Arg/>
      <Arg><Ref id="MBeanServer"/></Arg>
      <Call name="start"/>
    </Call>

 

    启动jetty要使用这样的命令行:java -jar start.jar etc/jetty-jmx.xml etc/jetty.xml,其中“etc/jetty-jmx.xml”要放在“etc/jetty.xml”前面。

 

    我们有时需要将Jetty中更多的信息暴露出来,或者向Jetty中添加了自己的代码,而自己的代码中有一些需要通过JMX暴露出来的。这就需要我们自己注册一些MBeans到Jetty使用的MBeanServer中。在自己的代码中用ManagementFactory.getPlatformMBeanServer()方法获得MBeanServer,这个MBeanServer就是Jetty使用的MBeanServer,将自己的MBean注册到它里面去就可以了。

 

    而后,打开JConsole,填入地址service:jmx:rmi://localhost:2100/jndi/rmi://localhost:2099/jmxrmi,就可以看到Jetty的MBeans和自己注册的MBeans了。这种做法非常简单,不需要自己建立MBean连接服务器。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值