Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Работа с сетью > Проблема с JMX под FreeBSD


Автор: vdweller 29.4.2008, 11:09
Возникла следующая проблема.
Есть сервер написанный на j2se. У него есть JMX интерфейс который открыт для localhost. И есть набор сервлетов которые работают под JBoss и подключаются к этому JMX интерфейсу. Под winxp все работает нормально. При загрузке на рабочий сервер под FreeBsd интерфейс на локалхосте стартует нормально, но при попытке подключиться к нему из сервлета сыпется эксепшен 
Код

java.rmi.ConnectException: Connection refused to host: 78.109.22.22; nested exception is:        java.net.ConnectException: Connection refused


Совсем непонятно откуда берется айпишник 78.109.22.22. Во первых коннект идет к localhost:
Код

JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:*****/ServiceName");
jmxc = JMXConnectorFactory.connect(url, props);


Во вторых это даже не внешний IP сервера, а непонятно откуда берущийся IP одной из подсетей провайдера, который к этому серверу не имеет никакого отношения.

Никто с подобным поведением не сталкивался?

Автор: Maksym 29.4.2008, 17:49
vdweller
  • а если вместо localhost поставить тупо 127.0.0.1 ?
  • пробовал подключатся к этому JMX интерфейсу из jconsole?
  • что передается в props?

Автор: vdweller 30.4.2008, 10:12
Цитата(Maksym @ 29.4.2008,  17:49)


  • а если вместо localhost поставить тупо 127.0.0.1 ?

  • пробовал подключатся к этому JMX интерфейсу из jconsole?

  • что передается в props?


в props лежат логин и пасс

Код

String[] credentials = new String[] {"somelogin", "somepassword"};
Map<String, String[]> props = new HashMap<String, String[]>();
props.put("jmx.remote.credentials", credentials);


127.0.0.1 пробовал, результат не изменяется никак.

jconsole не могу использовать, т.к. GUI на сервере нет

Добавлено через 12 минут и 50 секунд
Хм
Сейчас попробовал подключится через jmanage
В настройках тоже 127.0.0.1
Тот же эксепшен

Код

Apr 30, 2008 11:24:57 AM org.jmanage.core.management.ServerConnector getServerConnection
INFO: Failed to connect. error=Connection refused to host: 78.109.22.22; nested exception is:
        java.net.ConnectException: Connection refused

Автор: Maksym 30.4.2008, 11:28
vdweller
Может у тебя localhost каким-то нереальным образом настроен роутится через этот ip? smile в других приложениях на localhost получается соединятся? Сделай поиск по файлам сервера и приложения по "78.109.22.22", вдруг какой-нибудь твой предшественник (если он был) что-то намутил... 

Автор: vdweller 30.4.2008, 15:51
Было у меня такое предположение
Однако все говорит о том что сеть настроена стандартно

Код

nslookup 127.0.0.1
Server:         194.54.88.37
Address:        194.54.88.37#53

1.0.0.127.in-addr.arpa  name = localhost.


Код

nslookup localhost
Server:         194.54.88.37
Address:        194.54.88.37#53

Name:   localhost
Address: 127.0.0.1


Код

traceroute localhost
traceroute to localhost (127.0.0.1), 64 hops max, 40 byte packets
1  localhost (127.0.0.1)  0.163 ms  0.132 ms  0.101 ms


telnet подключается нормально на порт на котором JMX висит (с локалхоста на локалхост)
Поиск по всему серверу этого ip ни к чему не привел
DHCP выключен
попробовал подцепится на внешний IP этого сервера то же самое
кстати интересно - интерфейс стартует на localhost
Код

            JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost" + ":" + port + "/" + name);
            MBeanServer mbeanSrv = ManagementFactory.getPlatformMBeanServer();
            JMXConnectorServer server = JMXConnectorServerFactory.newJMXConnectorServer(url, props, mbeanSrv);
            server.start();


но на самом деле доступен и по внешнему ip сервера
может я его стартую неправильно?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)