我已按照以下链接中的说明在 tomcat 内的单个端口上创建自己的 RMI 注册表和 jmx 服务器。根据评论,我需要设置-Djava.rmi.server.hostname=localhost。一旦我这样做了,我确实可以使用 ssh 端口转发通过 jconsole 连接到我的服务器。
http://blogs.oracle.com/jmxetc/entry/connecting_through_firewall_using_jmx
但是,我发现它具有破坏使用 RMI 的 ehcache 复制的非常糟糕的副作用。它无法抱怨它无法从远程对等 localhost 引导。我猜是因为对等方都通过设置-Djava.rmi.server.hostname=localhost 将他们的rmi 服务器主机名设置为localhost。
有没有人可以解决这个问题?