Как получить Очередь, используя context.lookup() в Oracle 11g

Я хочу создать очередь и MessageDrivenBean в Oracle 11g.
Я создал JMS-модуль в Weblogic и в нем я создал 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.xml, ejb-jar.xml, weblogic-ejb-jar.xml?

2 ответа

Решение

Я решаю проблему. В Weblogic я должен создать подраздел JMS для своего развертывания (Oracle сказал, что это не обязательно, но в моем случае это так), и тогда все работает нормально.

В консоли WebLogic Среда -> Серверы -> Показать дерево JNDI.

Оттуда найдите очередь, запишите вложенный путь, в котором он находится, и затем используйте этот путь в поиске.

Другие вопросы по тегам