У меня есть приложение tomcat на удаленном хосте, и мне нужно подключить его с помощью JConsole. Приложение запускается с параметрами:
IP=`ifconfig eth0 | grep 'inet addr:' | cut -d ':' -f2 | cut -d ' ' -f1`
-Dcom.sun.management.jmxremote
-Djava.rmi.server.hostname=$IP
-Dcom.sun.management.jmxremote.port=9999
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
Порт 9999 открыт, значение IP
верное, проверил. Я могу получить к нему доступ по телнету (telnet <my_host> <my_port>
). Нетстат:
netstat -a | grep LISTEN
tcp 0 0 *:9999 *:* LISTEN
Но я не могу подключить его через jconsole, я всегда получаю одну и ту же ошибку:
Connection Failed: Retry?
Но netstat -a
показывает, что соединение ESTABLISHED
Пробовал разные адреса:
<my_host>:<my_port>
service:jmx:rmi://<my_host>:<my_port>/jndi/rmi://<my_host>:<my_port>/jmxrmi
service:jmx:rmi:///jndi/rmi://<my_host>:<my_port>/jmxrmi
Я также пытался добавить файлы .../conf/remote.users
и .../remote.acl
и прописать пути к этим файлам в свойствах -Dcom.sun.management.jmxremote.password.file
и -Dcom.sun.management.jmxremote.access.file
, но это не дало никакого эффекта.
Когда я развертываю это приложение на своем локальном компьютере, я могу подключиться к нему по адресу "localhost:9999"
.
Помогите кто-нибудь, в чем может быть проблема?
telnet <my_host> <my_port>
, если вы не можете подключиться, проверьте настройки брандмауэра между этими двумя машинами. - person Mahendra   schedule 14.03.2016echo $IP
после IP=ifconfig eth0 | grep 'inet addr:' | cut -d ':' -f2 | cut -d ' ' -f1
, чтобы проверить действительное значение IP-адреса. - person Mahendra   schedule 14.03.2016IP
верное, я проверил,telnet <my_host> <my_port>
работает нормально - person Kirill   schedule 14.03.2016$IP
, который вы используете, не транслируется каким-то образом в/etc/hosts
машины во внутренний петлевой адрес? - person Avihoo Mamka   schedule 14.03.2016/etc/hosts
не содержит<my_host>
- person Kirill   schedule 14.03.2016