17

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

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

C:>tomcat\server\bin> service.bat 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.authenticate=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 Error: Invalid com.sun.management.jmxremote.port number: 8090 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote .ssl=假

我没有 Java 背景,我想在这里实现一些古怪的东西吗?请指教。

4

2 回答 2

27

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

需要完成以下操作,以便为安装为 Windows 服务的 Tomcat 启用 JMX 访问,该服务的名称为“ApacheTomcatWindowsServer”,例如:

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

service.bat install

或您的自定义脚本。

  • 使用以下命令为已安装的服务启用 Apache 服务管理器:

tomcat7w.exe //MS//ApacheTomcatWindowsServer

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

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

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

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

保存并退出并重新启动服务。

  • 要连接到 JMX 控制台,jconsole请从您的 JDK 安装中触发,单击“新建连接”,指定“远程进程”并输入hostname:8090
于 2013-04-05T06:30:31.047 回答
3

您也可以通过以下方式卸载该服务

service.bat remove

然后编辑 service.bat 并在StartPath中添加参数并添加选项

-Djavax.management.builder.initial=;-Dcom.sun.management.jmxremote.port=8090;-Dcom.sun.management.jmxremote.authenticate=false;-Dcom.sun.management.jmxremote.ssl=false

这是我文件中的示例 StartPath

--StartPath "C:\tomcat7\" --Startup auto --JvmOptions "-Dcatalina.home=%CATALINA_HOME%;-Dcatalina.base=%CATALINA_BASE%;-Djava.endorsed.dirs=%CATALINA_HOME%\endorsed;- Djava.io.tmpdir=%CATALINA_BASE%\temp;-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager;-Djava.util.logging.config.file=%CATALINA_BASE%\conf\logging.properties; -Djava.rmi.server.hostname=;-Djavax.management.builder.initial=;-Dcom.sun.management.jmxremote.port=8090;-Dcom.sun.management.jmxremote.authenticate=false;-Dcom.sun .management.jmxremote.ssl=false" %JAVA_OPTS% ^

重新安装服务

service.bat install

然后启动 Tomcat 以应用更改

于 2016-04-14T01:14:49.643 回答