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