【问题标题】:post message to a remote JMS provider将消息发布到远程 JMS 提供程序
【发布时间】:2009-12-15 23:08:06
【问题描述】:

我希望能够将消息发送到远程 JBoss 服务器 (JBoss MQ)。

我可以为本地人做,但在尝试远程人时我被卡住了。

谁能给我解释一下怎么做? 有什么具体的步骤吗?

[到目前为止我尝试过的]

我需要向远程服务器的队列(运行“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");

但在运行上述代码时出现异常: (尽管如此,我可以 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 

连接远程队列有什么特别的吗?

【问题讨论】:

    标签: java jboss jms


    【解决方案1】:

    您是否确认可以连接到远程主机端口,即telnet 192.168.131.129 1299?您的防火墙可能会阻止某些流量但允许 ping。

    【讨论】:

    • 感谢您的建议。我试过了,连接不上。没有防火墙,它仍然不起作用。
    【解决方案2】:

    好的,所以在尝试了很多之后,我终于发现了问题所在:

    我没有以可以接受远程连接的方式在远程服务器上启动 JBoss。默认情况下,JBoss 开始只允许本地连接。

    所以,我用这个参数重新启动它:-b 0.0.0.0 现在它工作正常。

    感谢您的帮助和支持。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-08
      • 2010-11-05
      • 2015-01-25
      • 2023-03-29
      • 1970-01-01
      • 2016-08-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多