Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > JBoss вне localhost


Автор: Rusico 12.7.2007, 12:31
Привет.

Установил JBoss, запустил, добавил EJB, написал клиента и подключился - всё пашет.
Потом всё тоже, но не на localhost - всё хана, отказывается работать.

Может это настройки JBoss? - подскажите, пожалуйста.

Автор: hamsterKSU 12.7.2007, 12:35
а ты проверил висит ли у тебя Jboss на том хосту куда ты конектишся(отличном от localhost)

Автор: Rusico 12.7.2007, 12:37
да, это комп, стоящий рядом smile

Автор: chief39 12.7.2007, 12:43
Цитата(Rusico @  12.7.2007,  12:31 Найти цитируемый пост)
Установил JBoss, запустил, добавил EJB, написал клиента и подключился - всё пашет.

Какой клиент? Стэндэлон?

Цитата(Rusico @  12.7.2007,  12:31 Найти цитируемый пост)
Потом всё тоже, но не на localhost - всё хана, отказывается работать.

Это как?

Смотри. У тебя машина А(твоя, он же локалхост)

Клиент на А и джибосс на А - всё пашет, так?

Выносишь клиент  на Б, сервер остаётся на А - не пашет?

Если так, то не забудь клиенту дать библиотеки джибосса - он ведь не умеет работать с RMI|IIOP(а именно так и обмениается сообщениями с сервером). Да JNDI вряд ли у твоего приложеньица реализован smile

У джибосса ест ьпапка client - там нужные либы для клиента. добавь их клиенту на машину и в его класспас.

Когда всё локально. подозреваю что для клиента ты в класспас их включил в IDE и запускаешь из-под неё -потому и работает



Автор: hamsterKSU 12.7.2007, 12:44
а ошибки какие выдает?

Автор: Rusico 12.7.2007, 12:52
проблему описал именно так.

Если имеешь в виду библиотеку jbossall-client.jar, то она подключена.
а JNDI я задаю прям в коде:
      System.setProperty("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory");
      System.setProperty("java.naming.provider.url","jnp://192.168.1.176:1099");
      System.setProperty("java.naming.factory.url.pkgs","org.jboss.naming:org.jnp.interfaces");

вот, кокда  System.setProperty("java.naming.provider.url","jnp://127.0.0.1:1099"); всё работает
 А ошибка такая: 

javax.naming.CommunicationException: Could not obtain connection to any of these urls: 192.168.1.176:1099 and discovery failed with error: javax.naming.CommunicationException:

Автор: chief39 12.7.2007, 13:10
Гм... Джибосс точно запущен и хост указан точно? 
Цитата(Rusico @  12.7.2007,  12:52 Найти цитируемый пост)
192.168.1.176


Добавлено через 5 минут и 45 секунд
Сервер пинугется?

Автор: mindflyer 12.7.2007, 14:33
JBoss начиная с версии 4.2.0 по-умолчанию слушает только 127.0.0.1. Для того, чтобы он слушал другой IP, нужно запускать с ключом командной строки "-b<IP>", например "-b10.0.0.100"

Добавлено через 4 минуты и 33 секунды
PS: после этого он перестанет откликаться по 127.0.0.1

Автор: cube 12.7.2007, 14:46
Цитата(mindflyer @ 12.7.2007,  14:33)
JBoss начиная с версии 4.2.0 по-умолчанию слушает только 127.0.0.1. Для того, чтобы он слушал другой IP, нужно запускать с ключом командной строки "-b<IP>", например "-b10.0.0.100"

Добавлено @ 14:37
PS: после этого он перестанет откликаться по 127.0.0.1

У меня точь в точь такая же проблема, и когда я стартую c -b192.168.1.218
Вываливается такая ошибка "Порт 8083 уже используется":

Код

15:48:17,281 INFO  [Log4jService$URLWatchTimerTask] Configuring from URL: resource:jboss-log4j.xml
15:48:17,609 WARN  [ServiceController] Problem starting service jboss:service=WebService
java.lang.Exception: Port 8083 already in use.
        at org.jboss.web.WebServer.start(WebServer.java:233)
        at org.jboss.web.WebService.startService(WebService.java:322)
        at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289)
        at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245)
        at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)


И где настройках можно указать чтобы с любого IP можно было работать сервером?

Автор: Rusico 12.7.2007, 14:50
Вообще не понятно, ведь сервер слушает порт а не IP.
Но даже если по умолчанию он соединяется только с 127.0.0.1, то как тогда сделать
чтоб он соединялся с любым IP?.

Добавлено через 2 минуты и 55 секунд
Вообще не понятно, ведь сервер слушает порт а не IP.
Но даже если по умолчанию он соединяется только с 127.0.0.1, то как тогда сделать
чтоб он соединялся с любым IP?.

Автор: hamsterKSU 12.7.2007, 15:32
Цитата(Rusico @  12.7.2007,  13:50 Найти цитируемый пост)
Вообще не понятно, ведь сервер слушает порт а не IP.Но даже если по умолчанию он соединяется только с 127.0.0.1, то как тогда сделатьчтоб он соединялся с любым IP?.


там же написано при запуске поставить параметр -b и IP машины на которой он стоит.

Добавлено через 17 секунд
чтобы сервер был внешним а не внутренним

Автор: mindflyer 12.7.2007, 15:43
Цитата(Rusico @  12.7.2007,  14:50 Найти цитируемый пост)
Вообще не понятно, ведь сервер слушает порт а не IP.
Но даже если по умолчанию он соединяется только с 127.0.0.1, то как тогда сделать
чтоб он соединялся с любым IP?.


Ключ "-b<IP>" означает не то, что JBoss слушает клиентов запущенных только на конкретном IP, а то, что он сам считает, что запущен на этом IP и откликается, когда к нему обращаются именно по этому IP. Т.е. если ты запускаешь JBoss на 192.168.1.176, то тебе нужно стартовать его с ключом командной строки "-b192.168.1.176". После чего к нему можно будет обращаться с любого компьютера, указывая 192.168.1.176. В том числе и с самого компа, на котором запущен JBoss, к нему нужно коннектиться по 192.168.1.176, по localhost он перестанет отвечать.

Добавлено @ 15:48
Цитата(cube @  12.7.2007,  14:46 Найти цитируемый пост)
У меня точь в точь такая же проблема, и когда я стартую c -b192.168.1.218
Вываливается такая ошибка "Порт 8083 уже используется":


Значит, какая-то прога на этом компе уже юзает этот порт. Ищи какая. У меня иногда мешают Miranda, Scype плюс ещё пара прог. В этом случае я их все закрываю, запускаю JBoss, и потом опять включаю. 

Автор: chief39 12.7.2007, 15:49
Цитата(Rusico @  12.7.2007,  14:50 Найти цитируемый пост)
Вообще не понятно, ведь сервер слушает порт а не IP.

Ага. Только получив уже пакеты на этот порт, он может профильтровать по айпишнику клиента.
В доке искал?

Цитата(cube @  12.7.2007,  14:46 Найти цитируемый пост)
У меня точь в точь такая же проблема, и когда я стартую c -b192.168.1.218
Вываливается такая ошибка "Порт 8083 уже используется":

Это другая. Это значит что кто-то его уже юзает(другая копия джибосса или ещё какой процесс)
cube, запусти netstat под виндой или (напомните, плиз, пингвиноводы... ) под линуксом

Автор: Rusico 12.7.2007, 15:50
Понял, шпашибо.
Попробую позже, т.к. уже не на работе.
Спасибо всем за ответы.

Автор: chief39 12.7.2007, 15:53
Цитата(mindflyer @  12.7.2007,  15:43 Найти цитируемый пост)
Ключ "-b<IP>" означает не то, что JBoss слушает клиентов запущенных только на конкретном IP, а то, что он сам считает, что запущен на этом IP и откликается, когда к нему обращаются именно по этому IP. Т.е. если ты запускаешь JBoss на 192.168.1.176, то тебе нужно стартовать его с ключом командной строки "-b192.168.1.176". После чего к нему можно будет обращаться с любого компьютера, указывая 192.168.1.176. В том числе и с самого компа, на котором запущен JBoss, к нему нужно коннектиться по 192.168.1.176, по localhost он перестанет отвечать.

Пять за инфу smile 

Автор: cube 12.7.2007, 16:19
Цитата(mindflyer @ 12.7.2007,  15:43)
Значит, какая-то прога на этом компе уже юзает этот порт. Ищи какая. У меня иногда мешают Miranda, Scype плюс ещё пара прог. В этом случае я их все закрываю, запускаю JBoss, и потом опять включаю.

Я закрыл кип, аваст и у меня все работает! Спасибо! smile 

з.ы. пожалуйста кто нибудь, добавьте ему авторитет, я немогу, так как ненабрал количество постов

Автор: chief39 12.7.2007, 17:22
Цитата(cube @  12.7.2007,  16:19 Найти цитируемый пост)
з.ы. пожалуйста кто нибудь, добавьте ему авторитет, я немогу, так как ненабрал количество постов 

См. репу mindflyer'a

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