jetty-配置JMX

 

jetty中文文档:www.jettycn.com

 

 

Jetty >> 教程 >> 配置JMX

介绍

本教程介绍了Jetty和JMX的集成,包括在Jetty中如何配置和初始化JMX。

详细说明

访问由Jetty发布的MBean的最简单的方法是使用Sun公司的Java虚拟机提供的JConsole工具 。参见用JConsole监控Jetty 说明,其中描述了为了使用JConsole应如何配置JVM。

配置

取决于Jetty的引导方式,Jetty和JMX集成的步骤会有所不同。

独立方式启动Jetty

当在独立模式下运行时,通过jetty-jmx.xml配置文件可以为Jetty服务器配置MBeanContainer实例。jetty-jmx.xml做为标准配置文件运行,命令行如下所示:

java -jar start.jar OPTIONS=Server,jmx etc/jetty-jmx.xml etc/jetty.xml

请确保jetty-jmx.xml是命令行中列出的第一个XML文件,这样可以确保所有支持注册为MBean的对象都能够被正确地检测到。

内嵌的Jetty

如果Jetty嵌入到一个应用程序了,下面的代码片段展示了如何创建和配置一个MBeanContainer实例:

Server _server = new Server();

// Setup JMX
MBeanContainer mbContainer=new MBeanContainer(ManagementFactory.getPlatformMBeanServer());
_server.getContainer().addEventListener(mbContainer);
_server.addBean(mbContainer);
mbContainer.addBean(Log.getLog());

请注意,在创建Server后马上创建了MBeanContainer,随后把MBeanContainer注册为Server的Container对象的一个EventListener,然后立刻添加了一个MBean(Log.getLog())。由于日志模块在MBeanContainer之前初始化,这就需要手动创建一个日志MBean。

Jetty Maven插件

如果你使用Jetty Maven插件 ,你应该拷贝etc/jetty-jmx.xml文件到你的web应用工程的某个地方,例如src/etc,然后在插件的<configuration>元素中添加<jettyconfig>元素:

<plugin>
  <groupid>org.mortbay.jetty</groupid>
  <artifactid>maven-jetty-plugin</artifactid>
  <version>${project.version}</version>
  <configuration>
    <scanintervalseconds>10</scanintervalseconds>
    <jettyconfig>src/etc/jetty-jmx.xml</jettyconfig>
  </configuration>
</plugin>

自定义监控应用

你也可以使用JMX API编写自定义应用来监控你的Jetty服务器。为了使这个应用能够连接到你的Jetty服务器,你需要取消etc/jetty-jmx.xml配置文件最后一节的注释,并有选择地修改端点的名称。这将创建一个JMX HTTP连接,并注册一个JMX URL,这个过程将输出到Stderr log。

你应该给你的监控应用提供(出现在log中)URL,以便创建MBeanServerConnection。相同的URL也可以用于从远程使用JConsole连接到你的Jetty实例。有关详细信息,请参阅配置文件

其他资源

参见用JConsole监控Jetty ,里面描述了应如何配置JVM才能使用JConsole。

你也可以使用java-monitor 通过JMX来监控你的Jetty服务器。参见Jetty java-monitor 功能指南获得更多信息。

你可能感兴趣的:(java,servlet,jetty)