【问题标题】:How to get Queue using context.lookup() in oracle 11g如何在 oracle 11g 中使用 context.lookup() 获取队列
【发布时间】:2013-10-25 13:41:59
【问题描述】:

我想在 Oracle 11g 中创建 Queue 和 MessageDrivenBean。
我在 Weblogic 上创建了 JMS 模块,并在其中创建了 Queue 和 ConnectionFactory。 JDBC 名称如下所示:
队列:jms/EvZahQueue
ConnectionFactory: jms/ConnectionFactory

我试图让他们:

Context context = new InitialContext();
connectionFactory = (QueueConnectionFactory) context.lookup("jms/QueueConnector");
queue = (Queue) context.lookup("jms/EvZahQueue");

但是,我有一个这样的例外:

javax.naming.NameNotFoundException: While trying to look up comp/env/jms/QueueConnector in /app/webapp/registri-view/31900933.; remaining name 'comp/env/jms/QueueConnector'

另外,我尝试过:

Context context = new InitialContext();
connectionFactory = (QueueConnectionFactory) context.lookup("java:comp/env/jms/QueueConnector");
queue = (Queue) context.lookup("java:comp/env/jms/EvZahQueue");

我尝试创建默认属性并将它们放入new InitialContext(),但没有任何改变。

我该怎么办?也许我需要在web.xmlejb-jar.xmlweblogic-ejb-jar.xml 中写一些东西?

【问题讨论】:

  • 是吗,也许是 Oracle WebLogic 11g?
  • 是的,它是 Oracle WebLogic 11g。

标签: java queue jms weblogic11g initial-context


【解决方案1】:

从 WebLogic 控制台,环境 -> 服务器 -> 查看 JNDI 树.

从那里找到队列,记下嵌套路径 找到,然后在查找中使用该路径。

【讨论】:

  • 嗨拉菲安。首先,感谢您对我的帮助。我可以找到您在此示例中显示的 QueueConnectionFactory,但找不到我创建的名为 EvZahQueue 的队列。我不确定我需要做什么。
【解决方案2】:

我解决了这个问题。 在 Weblogic 中,我必须创建 JMS 模块的子部署(Oracle 说这不是强制性的,但在我的情况下似乎是这样),然后一切正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-02
    • 1970-01-01
    • 2014-05-13
    • 1970-01-01
    • 2014-01-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多