Nob*_*ody 7 ssh tomcat jmx rmi ehcache
我按照以下链接中的说明在tomcat内的单个端口上创建自己的RMI注册表和jmx服务器.根据评论,我需要设置-Djava.rmi.server.hostname = localhost.一旦我这样做,我确实可以使用ssh端口转发通过jconsole连接到我的服务器.
http://blogs.oracle.com/jmxetc/entry/connecting_through_firewall_using_jmx
但是,我发现它破坏了使用RMI的ehcache复制的非常糟糕的副作用.它无法抱怨它无法从远程对等localhost引导.我猜是因为对等体都将其rmi服务器主机名设置为localhost,设置为-Djava.rmi.server.hostname = localhost.
有没有人可以解决这个问题?
小智 1
我刚刚遇到这个问题。问题是 java.rmi.servername.hostname 属性是全局的。为了使 ehcache 和 jmx 服务器协调工作,您必须在运行 VisualVM 的计算机上执行一些修改。
这就是你需要做的。这是基于使用 Mac 作为客户端的情况,因此请根据需要修改命令。
删除 -Djava.rmi.server.hostname=localhost。
编写一个测试应用程序,该应用程序将为您提供要分析的服务器计算机上的 InetAddress.getLocalHost().getHostAddress() 值。这应该会给你本地IP(如果经过NAT,则为私有)。您必须在本地计算机上引用此 IP。在下面的命令显示 IP 的情况下使用此 IP。
现在,这是有趣的部分:将内部 IP 添加到计算机上的环回接口。(ifconfig lo0 IP 网络掩码 255.255.255.0 向上)
测试这实际上会将流量引导至环回。它应该返回环回。(路由获取IP)
启动 SSH 隧道: ssh -C -L IP:PORT:localhost:PORT -L IP:OTHER_PORT:localhost:OTHER_PORT user@host。
请注意,ssh 隧道的 IP 实际上是现在与环回绑定的 IP。你不再引用 localhost,而是引用机器的 IP。您还必须修改 JMX URL 以引用此 IP 而不是 localhost。
归档时间: |
|
查看次数: |
3560 次 |
最近记录: |