简体   繁体   English

HermesJMS无法连接到TibcoEMS服务器

[英]HermesJMS not able to connect to TibcoEMS server

I am trying to browse queues on remote TibcoEMS (ver 8+) server using HermesJMS. 我正在尝试使用HermesJMS浏览远程TibcoEMS(版本8以上)服务器上的队列。 Whenever I use Browse option on the configured EMS server, I get following error (server and port obscured): 每当我在配置的EMS服务器上使用“浏览”选项时,都会收到以下错误(服务器和端口被遮盖):

com.tibco.tibjms.admin.TibjmsAdminException: Unable to connect to server. Root cause:
javax.jms.JMSException: Failed to connect to the server at tcp://servername.domain.com:port
    at com.tibco.tibjms.admin.MessengerUtil.<init>(MessengerUtil.java:59)
    at com.tibco.tibjms.admin.TibjmsAdmin.<init>(TibjmsAdmin.java:458)
    at com.tibco.tibjms.admin.TibjmsAdmin.<init>(TibjmsAdmin.java:439)
    at hermes.ext.ems.TibcoEMSAdminFactory.createAdmin(TibcoEMSAdminFactory.java:105)
    at hermes.ext.ems.TibcoEMSAdmin.getAdmin(TibcoEMSAdmin.java:75)
    at hermes.ext.ems.TibcoEMSAdmin.discoverDestinationConfigs(TibcoEMSAdmin.java:261)
    at hermes.impl.HermesAdminAdapter.discoverDestinationConfigs(HermesAdminAdapter.java:82)
    at hermes.impl.DefaultHermesImpl.discoverDestinationConfigs(DefaultHermesImpl.java:1126)
    at hermes.browser.tasks.DiscoverDestinationsTask.invoke(DiscoverDestinationsTask.java:77)
    at hermes.browser.tasks.TaskSupport.run(TaskSupport.java:175)
    at hermes.browser.tasks.ThreadPool.run(ThreadPool.java:170)
    at java.lang.Thread.run(Unknown Source)
Internal exception:
javax.jms.JMSException: Failed to connect to the server at tcp://servername.domain.com:port
    at com.tibco.tibjms.TibjmsxLinkTcp._createSocket(TibjmsxLinkTcp.java:823)
    at com.tibco.tibjms.TibjmsxLinkTcp.connect(TibjmsxLinkTcp.java:914)
    at com.tibco.tibjms.TibjmsConnection._create(TibjmsConnection.java:1351)
    at com.tibco.tibjms.TibjmsConnection.<init>(TibjmsConnection.java:4311)
    at com.tibco.tibjms.TibjmsQueueConnection.<init>(TibjmsQueueConnection.java:36)
    at com.tibco.tibjms.TibjmsxCFImpl._createImpl(TibjmsxCFImpl.java:200)
    at com.tibco.tibjms.TibjmsxCFImpl._createConnection(TibjmsxCFImpl.java:253)
    at com.tibco.tibjms.TibjmsQueueConnectionFactory.createQueueConnection(TibjmsQueueConnectionFactory.java:87)
    at com.tibco.tibjms.admin.MessengerUtil.<init>(MessengerUtil.java:47)
    at com.tibco.tibjms.admin.TibjmsAdmin.<init>(TibjmsAdmin.java:458)
    at com.tibco.tibjms.admin.TibjmsAdmin.<init>(TibjmsAdmin.java:439)
    at hermes.ext.ems.TibcoEMSAdminFactory.createAdmin(TibcoEMSAdminFactory.java:105)
    at hermes.ext.ems.TibcoEMSAdmin.getAdmin(TibcoEMSAdmin.java:75)
    at hermes.ext.ems.TibcoEMSAdmin.discoverDestinationConfigs(TibcoEMSAdmin.java:261)
    at hermes.impl.HermesAdminAdapter.discoverDestinationConfigs(HermesAdminAdapter.java:82)
    at hermes.impl.DefaultHermesImpl.discoverDestinationConfigs(DefaultHermesImpl.java:1126)
    at hermes.browser.tasks.DiscoverDestinationsTask.invoke(DiscoverDestinationsTask.java:77)
    at hermes.browser.tasks.TaskSupport.run(TaskSupport.java:175)
    at hermes.browser.tasks.ThreadPool.run(ThreadPool.java:170)
    at java.lang.Thread.run(Unknown Source)

However, I can telnet to server on required port, can connect to server using EMS admin console, also able to connect to this server through java program using below code and list queue names: 但是,我可以在所需端口上远程登录到服务器,可以使用EMS管理控制台连接到服务器,也可以使用以下代码和列表队列名称通过Java程序连接到该服务器:

TibjmsAdmin admin = new TibjmsAdmin( serverUrl, userName, passwd );
System.out.println( "Displaying queues" );
for (QueueInfo qf: admin.getQueues())
    System.out.println( qf.getName()  );

Tried searching on web and SO but to no avail. 尝试在Web和SO上搜索,但无济于事。 Its not authentication problem for sure as I can connect using EMS admin console and java program. 它肯定不是身份验证问题,因为我可以使用EMS管理控制台和Java程序进行连接。

Any clue whats going on here? 任何线索,这是怎么回事?

Why do you want to use hermesJMS? 为什么要使用hermesJMS? Instead you can use GEMS which is perfect for TIBCO EMS and you can perform number of operation using GEMS including publishing message on the queue and reading the content(body) of pending message on the queue. 相反,您可以使用最适合TIBCO EMS的GEMS,还可以使用GEMS执行许多操作,包括在队列上发布消息并在队列上读取待处理消息的内容(正文)。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM