Я пытаюсь использовать ActiveMQ через JNDI, развертывая приложение на сервере Tomcat 7.0.
Я сделал настройки для фабрики соединений ActiveMQ и очереди в файле конфигурации Tomcat context.xml
, и они выглядят так:
<Resource
auth="Container"
brokerName="LocalActiveMQBroker"
brokerURL="vm://localhost"
clientID="TomcatClientID"
description="JMS Connection Factory"
factory="org.apache.activemq.jndi.JNDIReferenceFactory"
name="jms/ConnectionFactory"
password="password"
type="org.apache.activemq.ActiveMQConnectionFactory"
userName="user"/>
<Resource
auth="Container"
description="Order Queue"
factory="org.apache.activemq.jndi.JNDIReferenceFactory"
name="jms/orderQ"
physicalName="orderQ"
type="org.apache.activemq.command.ActiveMQQueue"/>
и я пытаюсь получить фабрику соединений следующим образом:
nnectionFactory connectionFactory = (ConnectionFactory) context
.lookup("java:comp/env/jms/ConnectionFactory");
но я получаю исключение:
java.lang.NoClassDefFoundError: org/slf4j/impl/StaticLoggerBinder
org.slf4j.LoggerFactory.getSingleton(LoggerFactory.java:230)
Я попытался выяснить причину исключения, но обнаружил только то, что оно может исходить от jar-файла регистрации общего пользования, который я добавил в папку lib tomcat.
Где я не прав?