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