gpt4 book ai didi

java - 无法通过 Java6 中的 jconsole 连接到 Tomcat 的 MBeanServer

转载 作者:行者123 更新时间:2023-11-28 21:54:37 25 4
gpt4 key购买 nike

我在 vista 机器上。我已经使用这些选项启动了 tomcat 5.5.27:

CATALINA_OPTS="-Dcom.sun.management.jmxremote.port=9003 \
-Dcom.sun.management.jmxremote.ssl=false \
-Dcom.sun.management.jmxremote.authenticate=false"

当我通过 jconsole 连接并添加以下服务 url

service:jmx:rmi:///jndi/rmi://localhost:9003/jmxrmi

它不会连接。有什么想法吗?

最佳答案

好吧,我本来以为 op 给的 URL 是错误的,但事实证明不是。所以我无法回答。

不过,这里是基础知识:

对于通过 jconsole 的简单连接.

例如,如果您知道您要连接的 JMX 服务器的 RMI 注册端口为 9003,则连接使用

localhost:9003

相反。

否则,这是我从头开始发现的:

假设您有 JMX 服务器(别名“JMX 代理”别名“您要连接的 JVM”)在“目标机器”上运行,RMI 注册端口位于“RMI REGISTRY PORT”和“JMX RMI 服务器端口”处的 JMX RMI 服务器端口

注意:

  1. RMI 注册表 告诉 JMX 客户端在哪里可以找到 JMX RMI 服务器端口;可以在键jmxrmi 下获取信息.
  2. RMI 注册表端口 通常是众所周知的,因为它是在 JVM 启动时通过系统属性设置的。
  3. JMX RMI 服务器端口通常是已知的,因为 JVM 会随机选择它(如果未采取其他预防措施)。

以下 URI 将导致成功(已测试)

service:jmx:rmi://<TARGET_MACHINE>:<JMX_RMI_SERVER_PORT>/jndi/rmi://<TARGET_MACHINE>:<RMI_REGISTRY_PORT>/jmxrmi

这看起来很讨厌。让我们把它分开。

这个 URI 是一个 RFC2609“服务定位协议(protocol) URL”(好吧,它真的是一个 URI,对吧?)

它由以下部分组成:

  • service - 一个常数
  • jmx:rmi - 服务类型 组成:抽象类型 jmxURL 方案 rmi
  • 其余 - sap(服务访问协议(protocol)规范)

sap 分解为:

  • //<TARGET_MACHINE>:<JMX_RMI_SERVER_PORT> - 网站
  • /jndi/rmi://<TARGET_MACHINE>:<RMI_REGISTRY_PORT>/jmxrmi - 网址部分

消息灵通的 JMX 客户端连接到“ipsite”以进行 JMX-over-RMI 交换;但是不知道该端口的 JMX 客户端呢?耐心...

URL 部分被分解为:

  • /jndi/ - 这似乎告诉 JMX 客户端它可以在后面的位置获取查找信息
  • rmi://<TARGET_MACHINE>:<RMI_REGISTRY_PORT>/jmxrmi - 是的,我们在 RMI 注册表中获取有关 JMX RMI 服务器的信息,在查找键 jmxrmi

这有点本末倒置,因为必须先联系 SLP URL 的后面部分给出的 RMI 注册表

挠头之后,凭直觉,我们试试:

service:jmx:rmi://<TARGET_MACHINE>/jndi/rmi://<TARGET_MACHINE>:<RMI_REGISTRY_PORT>/jmxrmi

是的,行得通! JMX RMI 服务器端口很好地从注册表中获得。转念一想,目标机器也应该从注册表中获取,因此:

service:jmx:rmi:///jndi/rmi://<TARGET_MACHINE>:<RMI_REGISTRY_PORT>/jmxrmi

更好的是,这也行得通!

引用资料:

1 download.oracle.com/javase/6/docs/api/javax/management/remote/rmi/package-summary.html
2 download.oracle.com/javase/6/docs/api/javax/management/remote/JMXServiceURL.html
3 mx4j.sourceforge.net/docs/ch03s04.html
4 download.oracle.com/javase/6/docs/technotes/guides/management/agent.html#gdevg
5 http://www.rfc-editor.org/rfc/rfc2609.txt

关于java - 无法通过 Java6 中的 jconsole 连接到 Tomcat 的 MBeanServer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/743343/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com