2009-11-25 3 views
1

Я хочу иметь возможность отправлять сообщения на удаленный сервер JBoss (JBoss MQ).отправить сообщение удаленному провайдеру JMS

Я могу сделать это для локального, но я застреваю при попытке с удаленным.

может кто-нибудь объяснить мне, как это сделать? есть ли какие-либо конкретные шаги?

[что я пытался до сих пор]

Мне нужно отправить сообщение в очередь удаленного сервера (под управлением «JBoss MQ»), так что он может обработать сообщение и действовать на нем.

Properties properties = new Properties(); 
    properties.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory"); 
    properties.put(Context.URL_PKG_PREFIXES, "org.jnp.interfaces"); 
    properties.put(Context.PROVIDER_URL, "jnp://192.168.131.129:1299"); 
    InitialContext jndiContext = new InitialContext(properties); 

    //[2] Look up connection factory and queue. 
    ConnectionFactory connectionFactory = (ConnectionFactory)jndiContext.lookup("UIL2XAConnectionFactory"); 
    Queue queue = (Queue)jndiContext.lookup("Queue/DataTransferQueue"); 

, но я получаю исключение при выполнении приведенного выше кода: (даже если я могу пинговать удаленный сервер).

javax.naming.CommunicationException: Could not obtain connection to any of these urls: 192.168.1.131.129:1299 and 
discovery failed with error: javax.naming.CommunicationException: 
Receive timed out [Root exception is java.net.SocketTimeoutException: Receive timed out] 
[Root exception is javax.naming.CommunicationException: Failed to connect to server 192.168.1.131.129:1299 

Есть ли что-нибудь особенное, чтобы подключиться к удаленной очереди?

ответ

1

ОК, так что после попытки много, я наконец-то узнал, что проблема была:

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

Итак, я перезапустил его с помощью этого аргумента: -b 0.0.0.0, и теперь он отлично работает.

Благодарим за помощь и поддержку.

1

Вы подтвердили, что можете подключиться к этому удаленному хосту и порт, то есть telnet 192.168.131.129 1299? Возможно, у вас есть межсетевой экран, который блокирует некоторый трафик, но позволяет пинговать.

+0

спасибо за предложение. Я пробовал и не мог подключиться. нет брандмауэра, и он все еще не работает. – Attilah