有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java无法连接到Tibco JMS服务器

我有一个java应用程序,它执行一些JMS发送&;接受工作。但我发现了一个有趣的问题。例如,我为java设置了以下内容。命名。供应商。网址

tcp://hostnameA.foo.bar:7222

但我得到的错误如下。其中只有主机名,而不是完全限定的域名

javax.jms.JMSException: Failed to connect to the server at tcp://hostnameA:7222

除非我在主机文件中手动添加hostnameA,否则它不会连接到Tibco服务器

我怎样才能修好它

提前谢谢


共 (2) 个答案

  1. # 1 楼答案

    我想这与编程层无关
    您对该名称的DNS查询无法解析,这就是为什么在编辑主机文件时它可以工作的原因
    请检查系统的DNS设置(或确保系统配置中的DNS服务器答复您的名称查询),或者改用IP地址

  2. # 2 楼答案

    EMS服务器有自己的内置JNDI服务器。连接时实际执行的操作是1)查询EMS:s JNDI服务器以获取连接工厂定义,然后2)基于返回的工厂创建连接。这是由您正在使用java这一事实所暗示的。命名。供应商。网址

    更改EMS服务器上正在使用的连接工厂的连接工厂定义(factories.conf)。新安装上默认工厂(例如QueueConnectionFactory)的默认定义为“tcp://7222“将被替换为”tcp://hostname:7222“检索时由服务器执行。您可以将此定义更改为,例如。”tcp://hostname.myfqdn.com:7222“事情应该是这样的

    您也可以通过直接创建连接完全绕过JNDI服务器,但我不建议这样做,因为服务器返回的连接工厂定义可能包含有关负载平衡和容错对、SSL设置、,或者指向完全不同的服务器对等。它还允许EMS管理员更改连接工厂的定义,而无需客户端更改其代码甚至配置