Я пытаюсь запросить удаленный JVM с jps, используя jstatd, чтобы в конечном итоге контролировать его с помощью VisualVM.
У меня запущена jstatd со следующей политикой безопасности:
grant codebase "file:${java.home}/../lib/tools.jar" {
permission java.security.AllPermission;
};
jstatd работает в 64-разрядной Linux-версии с версией HotSpot vm версии 1.6.0_10. Команда jstatd:
jstatd -J-Djava.security.policy=jstatd.tools.policy -J-Djava.rmi.server.logCalls=true
Я пытаюсь запустить jps с машины Windows 7. Из-за ограничений брандмауэра я туннелю данные RMI через туннель SSH на свою машину Windows, так что команда jps:
.\jps.exe -m -l rmi://localhost
Когда я запускаю jps, я вижу попытку подключения в журнале jstatd, которая выглядит следующим образом:
Feb 1, 2011 11:50:34 AM sun.rmi.server.UnicastServerRef logCall
FINER: RMI TCP Connection(3)-127.0.0.1: [127.0.0.1: sun.rmi.registry.RegistryImpl[0:0:0, 0]: java.rmi.Remote lookup(ja va.lang.String)]
но со стороны jps я получаю следующую ошибку:
Error communicating with remote host: Connection refused to host: 192.168.1.137; nested exception is:
java.net.ConnectException: Connection refused: connect
На основе попытки подключения, указанной в журнале jstatd, я думаю, что jps фактически достигает хоста, но по какой-то причине блокируется. Есть ли какая-либо политика безопасности, которую я установил, или какие-то другие настройки, где я могу изменить, чтобы я мог получить jps, чтобы вытащить статистику из удаленного jstatd?