Как получить Очередь, используя 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.
Оттуда найдите очередь, запишите вложенный путь, в котором он находится, и затем используйте этот путь в поиске.