activemq jndi tomcat error - PullRequest
       33

activemq jndi tomcat error

2 голосов
/ 16 декабря 2011

Я пытаюсь использовать 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.

Где я не прав?

1 Ответ

3 голосов
/ 22 декабря 2011

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

...