java - 从 natted ip 连接到 Tibco 队列失败

标签 java jms tibco

首先,我对 Tibco 不太熟悉,请记住这一点;)。

我的任务是编写一个读取/写入 jms 队列的应用程序(没什么大不了的)。问题是,客户使用 Tibco 并允许我连接到他们的服务器来运行一些测试。不幸的是,我只允许通过 natted IP 进行连接,一旦我尝试连接到 QueueConnectionFactory,我就会收到错误,因为 Tibco 本身尝试连接到“私有(private)”IP。

有趣的是,从上下文接收队列、QueueConnectionFactory...对象工作正常 - 但当我执行 toString() 时,我看到收到的 cf 已配置“私有(private)”IP。

示例:我将此网址设置为提供商网址 -> tibjmsnaming://213.133.111.182:7222

接收 QueueConnectionFactory 对象工作正常,执行 to string 返回“QueueConnectionFactory[URL=tcp://145.12.51.4:7222;clientID=null]”

因此,一旦我调用“createQueueConnectionFactory()”,我就会收到此异常:

javax.jms.JMSException:无法连接到服务器 tcp://145.12.51.4:7222

有没有办法覆盖此行为并告诉 Tibco 服务器使用配置的提供程序 url?

最佳答案

我知道这很古老,但如果您像我一样来自 Google,那么正确的答案如下:

上面的URL使用JNDI来查找实际的连接;连接器不会直接连接到 NATted IP,而是连接到 NATted IP(213.133.111.182)来查找“真实”IP(145.12.51.4),由于 NATting,该 IP 不起作用。

解决方案:更改 JNDI 存储中的注册 IP 或直接连接,绕过 JNDI。

关于java - 从 natted ip 连接到 Tibco 队列失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3606945/

相关文章:

mdm - 将部署服务器添加到 MDM Studio Designer

java - TIBCO BW 或 Java 中的 WS

java - tibco ems 是否可以通过更多连接进行扩展

jms - ActiveMQ、Apollo、Kafka

JavaMail 只获取新邮件

java - ImapMailReceiver 在只读文件夹上没有存储尝试(失败)[THROTTLED];

java - 如何使用 AngularJS 使用 war 名称发送请求?

java - JDBC和JMS的Spring事务同步

javax.jms.JMSException : Failed to create session factory while sending message to embedded ActiveMQ Artemis within JBoss EAP 7. 2

java - iText 7、htmlPDF 2 - DefaultFontProvider 的并行使用