JMS消息到远程服务器(JMS message to remote server)

2019-11-02 07:32发布

我需要将消息发送到远程服务器的队列(运行“的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.1.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");

但我运行上面的代码时得到一个异常:(尽管,我可以ping远程服务器)。

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 

有什么特别做连接到远程队列?

Answer 1:

您正在使用的IP地址不正确:192.168.1.131.129有5个数字,应该只有4。



Answer 2:

我通过重新启动具有以下过程参数我的JBoss服务器解决了这个问题:

-b 0.0.0.0

JBoss服务器默认情况下,开始只允许本地连接。 通过与前述mentionned参数启动它,你指示它接受远程连接。



文章来源: JMS message to remote server