我已经获得了一些关于使用发布到资源的消息的知识。在这个过程中,我使用了一个独立的,它将消息发布到本地队列。现在,任务是将消息发布到远程队列,该队列驻留在服务器(比如 TIBCO)中,而不是我在这里使用的 Web-Logic。
我的问题是:a) 发布到远程队列时,是否有任何显着差异需要注意?
向远程服务器发送消息非常简单。您只需要远程服务器的 URL 和 JMS 提供程序正在侦听传入连接的端口号。获得这些详细信息后,您就可以对队列执行 JNDI 查找并建立会话以发送消息。如下所示:
// Provide the details of remote JMS Server
Properties props = new Properties();
props.put(Context.PROVIDER_URL, "mq://localhost:7676");
// Create the initial context for remote JMS server
InitialContext cntxt = new InitialContext(props);
System.out.println("Context Created");
// JNDI Lookup for QueueConnectionFactory in remote JMS Provider
QueueConnectionFactory qFactory = (QueueConnectionFactory)cntxt.lookup("TestQueueConnectionFactory");
// Create a Connection from QueueConnectionFactory
Connection connection = qFactory.createConnection();
System.out.println("Connection established with JMS Provide ");
有关完整的代码详细信息,请参阅此JMS 客户端服务器示例。我猜你只对这个例子中的客户端代码感兴趣。
你想达到什么目标?如果您只是想在任何符合 JMS 的代理上向队列发布消息,我会尝试使用 Hermes 工具:http ://www.hermesjms.com/confluence/display/HJMS/Home
干杯