3
我正在寻找检查绑定状态的对象和适当的jndi名称的方式。如何检查jndi绑定/解除绑定状态?
例如,我有一些LDAP JMS队列名称: “/TheRootContext/SomeSubContext/SOME.QUEUE.NAME:queue”
我需要检查适当的队列存在,它是绑定与传递名称。
什么是检查“绑定状态”的正确方法?
我看到这样的算法:
执行JNDI查找,以确保所提供的名称存在。
Object obj = ctx.lookup(“/ TheRootContext/SomeSubContext/SOME.QUEUE.NAME:queue”);
%我不知道下一步该怎么做%,但建议是这样检查:
的obj = NULL & & OBJ的instanceof的javax.jms.Queue
我对么?什么是正确的方法?
是的,我在代码中捕捉[NamingException](http://download.oracle.com/javase/1.4.2/docs/api/javax/naming/NamingException.html),但这只告诉我关于命名问题,但没有关于绑定。例如,可能存在ldap名称,但对象不存在。在这种情况下,我不会得到任何[NamingException](http://download.oracle.com/javase/1.4.2/docs/api/javax/naming/NamingException.html)。正如我所看到的,[list](http://download.oracle.com/javase/1.4.2/docs/api/javax/naming/InitialContext.html#list(java.lang.String))方法只枚举名称// @ Superfilin – Milkywayfarer 2011-03-04 09:29:48
可能是我应该使用[listBindings](http://download.oracle.com/javase/1.4.2/docs/api/javax/naming/InitialContext.html#listBindings(javax.naming。名称))方法?但它似乎是非常沉重的意思,遍历所有绑定。可能存在更轻量化的方式? @Superfilin – Milkywayfarer 2011-03-04 09:30:41
但是,您可以将您的目标名称指定为列表或listBindings的输入。在最好的情况下,它将返回1,最差的0个bean。我不认为它比查找更重。 – 2011-03-04 09:36:23