Фабрика соединений очереди JMS в стойках - PullRequest
1 голос
/ 18 января 2011

Я пытаюсь интегрировать отправителя сообщений JMS в веб-приложение на основе Struts. Я определил отправителя сообщения в методе и вызвал метод в методе выполнения ActionForm. Я получаю ошибку

javax.naming.NameNotFoundException: Name queueConnectionFactory is not bound in this Context

Я думаю, ошибка в этом месте

 try {
    connectionFactory = (ConnectionFactory)jndiContext.lookup("queueConnectionFactory");
    destination = (Destination)jndiContext.lookup(destinationName);
} catch (NamingException e) {
    e.printStackTrace();
    System.exit(1);
}

Я использую ActiveMQ в качестве брокера сообщений.

1 Ответ

2 голосов
/ 19 ноября 2011

В веб-слое вы должны использовать полное имя JNDI соединения.заводской, то есть java:comp/env/queueConnectionFactory.

В Tomcat вам также необходимо объявить его в web.xml:

<resource-ref id="ResourceRef_0">
   <description>Logical mapping of QueueConnectionFactory</description>
   <res-ref-name>queueConnectionFactory</res-ref-name>
   <res-type>javax.jms.QueueConnectionFactory</res-type>
   <res-auth>Container</res-auth>
   <res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
...