2011-12-16 6 views
2

JNDI를 통해 ActiveMQ를 사용하여 Tomcat 7.0 서버에 응용 프로그램을 배포하려고합니다. 내가 톰캣 context.xml 구성 파일의 ActiveMQ 연결 팩토리와 큐에 대한 설정을 한, 그들은 다음과 같이 :activemq jndi tomcat 오류

<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-lo gging jar, 나는 tomcat lib 폴더에 추가했다.

어디서 잘못 되었나요?

답변

3

commons-logging은 실제로 로깅과 관련이 있지만 아파치에서 가져온 라이브러리입니다. 또한 slf4j는 단지 정면입니다. slf4j에 대한 실제 구현을 제공해야합니다. 나는 logback을 제안 할 것이고, 그것은 "더 좋은"자바 로깅을 할 수있는 방법이다. 따라서 클래스 경로에 3 개의 병 (slf4j-api.jar, logback-core.jar 및 logback-classic.jar)이 필요합니다. 반면에 logback을 사용하지 않으려면 다른 구현이 작동합니다.