当前位置: 首页 > 面试题库 >

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

汪晨
2023-03-14
问题内容

我在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连接并添加以下服务网址时

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

它不会连接。有任何想法吗 ?


问题答案:

好的,我原本以为op给出的URL是错误的,但事实并非如此。所以我无法回答。

不过,这里有一些基础知识:

通过进行简单连接jconsole

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

localhost:9003

代替。

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

假设您具有在“ TARGET MACHINE”上运行的JMX服务器(别名为“ JMX Agent”别名“您要连接的JVM”),RMI注册表端口位于“ RMI REGISTRY PORT”,JMX RMI服务器端口位于“ JMX RMI”服务器端口’。

注意:

  1. 在RMI注册表告诉JMX客户端在哪里可以找到JMX RMI服务器端口; 可以在key下获取信息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“服务位置协议URL”(嗯,它确实是URI,对吗?)

它由以下组成:

  • service -一个常数
  • jmx:rmi-服务类型包括:抽象类型 jmx和URL方案 rmi
    其余-SAP(服务访问协议规范)
    汁液分解为:

  • //<TARGET_MACHINE>:<JMX_RMI_SERVER_PORT> -ipsite

  • /jndi/rmi://<TARGET_MACHINE>:<RMI_REGISTRY_PORT>/jmxrmi -URL部分
    消息灵通的JMX客户端连接到“ ipsite”以进行RMX上的JMX交换。但是不知道该端口的JMX客户端呢?忍耐…

URL部分分解为:

  • /jndi/ -这似乎告诉JMX客户端可以在随后的位置获取查询信息
    r* mi://<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


 类似资料:
  • 代理的代码在这里 生成脚本在这里 我在远程计算机上启动应用程序时使用 主机上打开了两个端口6004和6005,如果jconsole是应用程序本地的,我可以通过jconsole连接到应用程序。 然后创建2个ssh隧道 ssh隧道ssh-l 6004:localhost:6004 foo@server ssh隧道ssh-l 6005:localhost:6005 foo@server 现在的问题是我无

  • 问题内容: 我已经在服务器上安装了Kibana 5.4和Elastic search 5.4,我可以通过使用本地计算机上的curl来访问Kibana和Elastic search 我得到以下回应 var hashRoute =’/ app / kibana’; var defaultRoute =’/ app / kibana’; var hash = window.location.hash;

  • 我已经在服务器上安装了Kibana 5.4和Elastic search 5.4,我可以使用 我得到以下回应 var hashRoute='/app/kibana'; var defaultRoute='/app/kibana'; var hash=window.location.hash; if(hash.length){window.location=hashRoute hash;}其他{wi

  • 问题内容: 我最近安装了Elasticsearch,并且在开始的几天里一切正常,但是今天以某种方式停止了工作 当我启动该服务时,它声称很好… 但后来我明白了 查看elasticsearch日志: 看起来有关于Java VM的警告;那可能是问题吗?我还应该尝试/看看什么? 问题答案: 1) 使用linux中的命令 检查端口9200的状态 。 就我而言,以下是启动时的结果。 对我不是服务,否则找到正在

  • 这几天来,我无法在本地运行mac os ML的机器上连接到我的postgreSQL数据库。 我机器的nmap显示postgres在5432上运行,我可以通过pgadmin和psql进行本地连接。 收听地址设置为* 当我尝试连接JDBC时,我会遇到以下异常 组织。postgresql。util。PSQLException:连接被拒绝。检查主机名和端口是否正确,邮政局长是否接受TCP/IP连接。

  • 问题内容: 我在通过Ruby-Watir Webdriver连接到Tor时遇到问题。 我使用Tor浏览器套件。问题是,当我尝试通过Watir(Selenium)连接时,似乎无法打开Tor而不是常规的Firefox。 在研究类似问题时,我尝试了以下方法: 当我使用上述代码时,我仍然会打开普通的firefox浏览器,并且无法连接到洋葱站点。 有什么想法吗?是否需要将Tor浏览器连接到我的webdriv