Отправка сообщений в удаленную тему JMS - PullRequest
3 голосов
/ 24 июня 2009

Я пишу небольшую утилиту для отправки сообщений JMS на удаленный сервер, но мне не удается правильно настроить InitialContext (или так кажется)

код для инициализации контекста:

      Properties p = new Properties();
      p.put(Context.INITIAL_CONTEXT_FACTORY, 
            "org.jnp.interfaces.NamingContextFactory");
      p.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
      p.put(Context.PROVIDER_URL, "jnp://10.10.10.10:1099/");
      Context context = new InitialContext(p);

Но когда я запускаю его, я получаю исключение:

javax.naming.CommunicationException 
[Root exception is java.rmi.ConnectException: 
Connection refused to host: 127.0.0.1; 
nested exception is: 
java.net.ConnectException: Connection refused: connect]

Так что меня сбивает с толку то, что я жалуюсь на событие 127.0.0.1, хотя я настраиваю его для 10.10.10.10, который работает, работает jboss, нет брандмауэра, я могу получить сеанс telnet на порт 1099, так что кажется быть в порядке

Есть указатели? или помощники?

1 Ответ

4 голосов
/ 24 июня 2009

Это связано с тем, что JNDI и зависимые протоколы по своей природе имеют обратную связь, и последующие запросы будут отправляться на IP-адрес, который сервер «считает» необходимым для прослушивания. Если вы подключитесь к 10.10.10.10:1099 и посмотрите на вывод, вы увидите что-то вроде этого:

telnet 10.10.10.10 1099
[Connection message]
[Garbage]
127.0.0.1....

Причина в том, что ваш сервер «обслуживает» 127.0.0.1 и ответит этим адресом в качестве местоположения JNDI. Поскольку вы (скорее всего) находитесь на удаленной машине, когда ваша удаленная машина пытается подключиться к IP-адресу, к которому сервер Jboss уведомил ее подключиться (127.0.0.1), она пытается подключиться к себе, а не к серверу JBoss.

Вам нужно либо запустить jboss с помощью: ./run.sh -b 0.0.0.0 (привязка всех IP-адресов), либо изменить запись localhost на компьютере на 10.10.10.10

(Кстати, я помню, как боролся с этим целую вечность, и знаю, как это расстраивает)

...