首页 文章

activemq jndi tomcat错误

提问于
浏览
2

我试图通过JNDI使用ActiveMQ,在Tomcat 7.0服务器中部署应用程序 . 我已经在Tomcat context.xml 配置文件中为ActiveMQ连接工厂和队列进行了设置,它们看起来像这样:

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

我试图找出异常的原因,但我发现它只能来自commons-logging jar,我已将其添加到tomcat lib文件夹中 .

我哪里错了?

1 回答

  • 3

    commons-logging是一个与日志记录有关的库,但它来自Apache . 另外slf4j只是一个外观,你需要为slf4j提供一个实际的实现 . 我建议使用logback,这是一种“更好”的java登录方式 . 所以你的类路径上需要3个jar:slf4j-api.jar,logback-core.jar和logback-classic.jar . 另一方面,如果您不想使用logback,那么任何其他实现都将起作用 .

相关问题