java - 将消息发布到远程 JMS 提供者

标签 java jboss jms

我希望能够将消息发送到远程 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 

连接到远程队列有什么特殊要做吗?

最佳答案

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

关于java - 将消息发布到远程 JMS 提供者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1796262/

相关文章:

jms - WebSphere MQ 中监听器的用途是什么?

java - 在这种情况下,JMS 主题是否足够?或者我应该去别处看看?

java - JMS 非 MDB 客户端

java - 如何将组件添加到 JPanel 中

java - 为什么java代码中的String.length不计算空格?

java - 在Java中接收UDP而不丢包

mysql - 如何在 jboss 上建立到 mysql 服务器的只读 xa 数据源连接

java - 获取大于system.currentTimeMillis值的rand值的方法

java - {{notification.header}} {{notification.message}} 在访问 Keycloak 管理控制台时加载

java - 增加一次处理的出队消息数量 (ActiveMQ)