【问题标题】:JNDI lookup failing when looking up JMS queue in WebLogic 10.3.5在 WebLogic 10.3.5 中查找 JMS 队列时,JNDI 查找失败
【发布时间】:2016-05-18 15:21:42
【问题描述】:

我是 JMS 编程的新手,遇到了 NameNotFoundException,尽管在查看管理控制台时,它显示了失败的 JNDI 名称。

产生的异常是:

javax.naming.NameNotFoundException:无法解析“tutorialqueue”。解决 '';剩下的名字'tutorialqueue' 在 weblogic.jndi.internal.BasicNamingNode.newNameNotFoundException (BasicNamingNode.java:1139) 在 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 名称。可能与子部署和/或目标为空白有关吗?

这是查找发生/失败的代码:

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

【问题讨论】:

    标签: jakarta-ee jms weblogic


    【解决方案1】:

    在 weblogic 中,您应该将队列设置为使用与连接工厂相同的子部署和目标,两者都需要在 JVM 中找到。更新队列的目标和子部署以匹配连接工厂,它应该开始工作。

    【讨论】:

    • 谢谢约翰。这确实是我的问题!
    • @Todd Iam 面临着类似的问题。为了克服上述代码或其他设置中的问题(如类路径、添加更多 jar),您做了哪些更改?
    • @Galaxin,我所做的更改是在设置队列本身时在 WebLogic 的管理控制台中进行的。设置: Name - TutorialJmsQueue Type - Queue JNDI Name - tutorialqueue Subdeployment - Targets - 要求我设置 subdeployment 和 targets 字段
    • 我创建了一个新问题,因为我的问题是相同的,但我无法让这个解决方案发挥作用。如果你们中的任何人想看看它,这里是链接:stackoverflow.com/questions/26285627/…
    【解决方案2】:

    添加一切都可以...但是你需要替换

    > tutorialconnectionfactory and 
    > tutorialqueue
    

    > jms/tutorialconnectionfactory and 
    > jms/tutorialqueue
    

    那么我认为它会工作得很好......

    【讨论】:

      猜你喜欢
      • 2023-03-30
      • 2019-03-19
      • 1970-01-01
      • 2013-06-29
      • 2018-09-18
      • 1970-01-01
      • 2020-01-03
      • 2010-09-08
      • 1970-01-01
      相关资源
      最近更新 更多