2011-12-16 3 views
2

Я пытаюсь использовать ActiveMQ через JNDI, развертывая приложение на сервере Tomcat 7.0. я сделал настройки для ActiveMQ фабрики соединений и очереди в файле конфигурации Tomcat context.xml, и они выглядят так:activemq jndi tomcat error

<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) 

Я пытался выяснить причину исключения, но я нашел только, что он может прийти из Викисклада Ио gging, который я добавил в папку tomcat lib.

Где я ошибаюсь?

ответ

3

commons-logging - это библиотека, которая связана с протоколированием, но это от Apache. Также slf4j - это просто фасад, вам нужно предоставить реальную реализацию для slf4j. Я бы предложил logback, который является «лучшим» способом ведения журнала в java. Таким образом, вам понадобится 3 баночки на пути к классу: slf4j-api.jar, logback-core.jar и logback-classic.jar. Если, с другой стороны, вы не хотите использовать logback, тогда любая другая реализация будет работать.