jetty中文文档:www.jettycn.com
详细说明
访问由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 功能指南获得更多信息。