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 JMXMBeanContainer 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功能指南获得更多信息。