Я пытаюсь запросить удаленную JVM с помощью jps с помощью jstatd, чтобы в конечном итоге отслеживать его с помощью VisualVM.
Я запустил jstatd со следующей политикой безопасности:
grant codebase "file:${java.home}/../lib/tools.jar" {
permission java.security.AllPermission;
};
jstatd работает на 64-битной Linux-системе с версией 1.6.0_10 HotSpot vm. Команда 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?