如何在运行Windows服务的tomcat7上启用JMX?

use*_*135 16 windows tomcat

在将其发布之前,我已经广泛搜索了这篇文章.我一直在尝试找到一种在安装为Windows服务的Tomcat实例上启用JMX Access的方法.通过startup.bat脚本调用Tomcat时非常简单,只需将CATALINA_OPTS环境变量设置为"-Dcom.sun.management.jmxremote.port = 1234 -Dcom.sun.management.jmxremote.authenticate = false -Dcom.sun.management.jmxremote.ssl = false"

但是如何让Tomcat Windows服务读取这些选项呢?我试过这个:

C:> tomcat\server\bin> service.bat install #install Tomcat7 windows服务

C:> tomcat\server\bin> tomcat7.exe // US // Tomcat7 ++ JvmOptions"-Djava.io.tmpdir = $ INSTDIR\server\temp; -XX:MaxPermSize = 256m; -Dcom.sun.management. jmxremote.port = 8090; -Dcom.sun.management.jmxremote.au thenticate = false; -Dcom.sun.management.jmxremote.ssl = false"--JDmMs 256 -JvmMx 1 024 #update已安装的服务使用/ /美国开关; 设置tmpdir,JMX访问权限和堆大小

当我从"服务"面板启动服务时,服务无法启动,我在logs\tomcat7-stderr-yyyy-mm-dd.log文件中收到以下错误:

yyyy-mm-dd hh:mm:ss Commons Daemon procrun stderr initialized错误:无效的com.sun.management.jmxremote.port号码:8090 -Dcom.sun.management.jmxremote.authenticate = false -Dcom.sun.management.jmxremote .ssl = FALSE

我没有Java背景,我想在这里尝试一些古怪的东西吗?请指教.

use*_*135 26

回答我自己的问题; 结果比我想象的容易.

需要执行以下操作,以便为作为Windows服务安装的Tomcat启用JMX访问,例如名称为"ApacheTomcatWindowsServer":

  • 使用该命令将Tomcat安装为Windows服务(首先进入\ bin \)

service.bat install

或您的自定义脚本.

  • 使用以下命令为已安装的服务启用Apache Service Manager:

tomcat7w.exe //MS//ApacheTomcatWindowsServer

这应该在您的系统托盘上启动Apache Service Monitor程序.单击其图标.选择'Configure',单击'Java'选项卡并在'Java Options'文本框中附加以下内容,每行一个选项:

-Dcom.sun.management.jmxremote.port=8090

-Dcom.sun.management.jmxremote.authenticate=false

-Dcom.sun.management.jmxremote.ssl=false

保存并退出并重新启动该服务.

  • 要连接到JMX控制台,请jconsole从JDK安装中触发,单击"新建连接",指定"远程进程"并输入hostname:8090.