我正在编写Java类以浏览Tibco EMS JMS服务器并显示所有队列。我能够连接没有问题,并浏览特定的队列,但我正在寻找一种方式来返回所有队列(如果可能的话,队列深度)。我不是因为使用了特定的EMS API,所以我使用标准的JMS。列出Tibco EMS中的所有JMS队列
我试了下面的代码来做一个反向的JNDI查找,但它是失败的。
NamingEnumeration<?> queues = context.list("");
List<String> availableQueuesNames = new ArrayList<String>();
while (queues.hasMoreElements()) {
NameClassPair element = (NameClassPair) queues.nextElement();
availableQueuesNames.add(element.getName());
}
会抛出这个错误:
javax.naming.OperationNotSupportedException: Not supported
at com.tibco.tibjms.naming.TibjmsContext.list(TibjmsContext.java:1018)
at com.tibco.tibjms.naming.TibjmsContext.list(TibjmsContext.java:484)
at javax.naming.InitialContext.list(Unknown Source)
我做了一些挖掘,似乎TIBCO EMS不支持寻找到这样的JNDI。有没有另外一种方法来完成这个?
这是一个好主意,我也使用listBindings(),但不幸的是它也给出了同样的问题“javax.naming.OperationNotSupportedException:Not supported”。 – Matt
好的......不使用Tibco的另一个原因是什么?该方法未标记为可选。 –