【问题标题】:activemq jndi tomcat erroractivemq jndi tomcat错误
【发布时间】:2012-01-21 15:49:57
【问题描述】:

我正在尝试通过 JNDI 使用 ActiveMQ,将应用程序部署在 Tomcat 7.0 服务器中。 我在Tomcatcontext.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)

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

我哪里错了?

【问题讨论】:

    标签: java tomcat jms jndi activemq


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-17
      • 1970-01-01
      • 2017-09-17
      • 1970-01-01
      • 2012-01-21
      • 2010-10-01
      相关资源
      最近更新 更多