我是JMS編程新手,即使在查看管理控制檯時顯示失敗的JNDI名稱,也會遇到NameNotFoundException。在WebLogic 10.3.5中查找JMS隊列時,JNDI查找失敗
產生的例外是:
javax.naming.NameNotFoundException:無法解析 'tutorialqueue'。解決 '';在weblogic.jndi.internal.BasicNamingNode.newNameNotFoundException(BasicNamingNode.java:1139) 剩餘名稱 'tutorialqueue' 在weblogic.jndi.internal.BasicNamingNode.lookupHere(BasicNamingNode.java:252) 在weblogic.jndi.internal.ServerNamingNode .lookupHere在(ServerNamingNode.java:182) 在weblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:206) 在weblogic.jndi.internal.WLEventContextImpl.lookup(WLEventContextImpl.java:254) weblogic.jndi .internal.WLContextImpl.lookup(WLContextImpl.java:411)
在管理控制檯中,我看到:
名稱 - TutorialJmsConnectionFactory
類型 - 連接工廠
JNDI名稱 - tutorialconnectionfactory
子部署 - 默認靶向
目標 - AdminServer中
名稱 - TutorialJmsQueue
類型 - 隊列
JNDI名稱 - tutorialqueue
子部署 -
目標 -
控制檯顯示教程隊列異常說明找不到的JNDI名稱。另外,tutorialconnectionfactory名稱WAS已成功找到。這可能與子部署和/或目標空白有關嗎?
這裏就是查找發生/出現故障代碼:
QueueConnectionFactory queueFactory = (QueueConnectionFactory) ic.lookup("tutorialconnectionfactory");
QueueConnection queueConnection = queueFactory.createQueueConnection();
QueueSession queueSession = queueConnection.createQueueSession(false , Session.AUTO_ACKNOWLEDGE);
Queue queue = (Queue) ic.lookup("tutorialqueue");
QueueSender sender = queueSession.createSender(queue);
任何人都可以點我在正確的方向? TIA
感謝約翰。這確實是我的問題! – Todd 2012-03-29 14:23:02
@Todd Iam面臨類似的問題。爲了克服上述代碼或其他設置(如類路徑,添加更多罐子)中的問題,您做了哪些更改? – Galaxin 2012-04-01 17:13:32
@Galaxin,我做的更改是在設置隊列本身時在WebLogic的管理控制檯中進行的。設置: 名稱 - TutorialJmsQueue 類型 - 隊列 JNDI名稱 - tutorialqueue 子部署 - 目標 - 要求我設置的子部署和目標領域 –
Todd
2012-04-02 13:38:04