【发布时间】:2013-02-14 16:34:36
【问题描述】:
在将其发布到此处之前,我已经广泛搜索了此内容。我一直在尝试找到一种在作为 Windows 服务安装的 Tomcat 实例上启用 JMX 访问的方法。通过 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 #安装Tomcat7 windows服务
C:>tomcat\server\bin> tomcat7.exe //美国//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" --JvmMs 256 --JvmMx 1 024 #使用 //US 开关更新已安装的服务;设置 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 背景,我想在这里实现一些古怪的东西吗?请指教。
【问题讨论】:
-
是的,我确实参考了这个页面。它表示参数 ++JvmOptions 接受以 -D 或 -X 开头的选项列表。因此,虽然它确实接受 -Djava.io.tmpdir 和 -XX:MaxPermSize 选项; -Dcom.xxx 选项似乎不受支持。
-
邮件中有“数字”一词。所以它看起来确实“知道”你正在尝试传递一个端口#,但它不喜欢这个值。
-
抱歉回复晚了。至于数字部分,Apache文档here说需要设置以下参数
CATALINA_OPTS=-Dcom.sun.management.jmxremote \ -Dcom.sun.management.jmxremote.port=%my.jmx.port% \ -Dcom.sun.management.jmxremote.ssl=false \ -Dcom.sun.management.jmxremote.authenticate=false所以jmxremote.port参数与我尝试定义的相同。至于端口号,我认为它是一个 TCP 端口,所以我确保它没有被使用。