2009-06-29 2 views
1

이것은 나를 미친 듯이 몰아 넣고있다. Mac OSX 10.5.7에서 activemq를 실행하려고합니다. Java 버전 1.5.0_19 및 activemq 5.2.0 있습니다. 아래는 bin/activemq를 실행할 때 나는 예외입니다. 그것은 logmj를 찾을 수없는 것으로 보입니다. 이상한 점은 activemq가 있고 lib/optionals 디렉토리에있는 것입니다. 내가 생각할 수있는 유일한 것은 내가 어딘가에서 갈등을 겪고 있다는 것이지만 이것이 가능한 방법을 상상할 수는 없다. 누군가가 내가 귀가하는 조언이 있다면, 인터넷 검색에서 동일한 오류가 발생해도 거의 결과가 나타나지 않으며 정확한 오류가있는 사람에게는 해결책이 없습니다. 예외가 org.apache.log4j.Category하는 NoClassDefFoundError 의해 야기되는 것처럼activemq 적합하지 않은 로그 생성자

> brad-robertsons-macbook-pro:apache-activemq-5.2.0 
> bradrobertson$ ./bin/activemq 
> ACTIVEMQ_HOME: 
> /Users/bradrobertson/Java/apache-activemq-5.2.0 
> ACTIVEMQ_BASE: 
> /Users/bradrobertson/Java/apache-activemq-5.2.0 
> Loading message broker from: 
> xbean:activemq.xml ERROR: 
> java.lang.RuntimeException: Failed to 
> execute start task. Reason: 
> java.io.IOException: Could not load 
> xbean 
> factory:java.lang.ExceptionInInitializerError 
> java.lang.RuntimeException: Failed to 
> execute start task. Reason: 
> java.io.IOException: Could not load 
> xbean 
> factory:java.lang.ExceptionInInitializerError 
> at 
> org.apache.activemq.console.command.StartCommand.runTask(StartCommand.java:98) 
> at 
> org.apache.activemq.console.command.AbstractCommand.execute(AbstractCommand.java:57) 
> at 
> org.apache.activemq.console.command.ShellCommand.runTask(ShellCommand.java:129) 
> at 
> org.apache.activemq.console.command.AbstractCommand.execute(AbstractCommand.java:57) 
> at 
> org.apache.activemq.console.command.ShellCommand.main(ShellCommand.java:79) 
> at 
> sun.reflect.NativeMethodAccessorImpl.invoke0(Native 
> Method) at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
> at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
> at 
> java.lang.reflect.Method.invoke(Method.java:585) 
> at 
> org.apache.activemq.console.Main.runTaskClass(Main.java:225) 
> at 
> org.apache.activemq.console.Main.main(Main.java:106) 
> Caused by: java.io.IOException: Could 
> not load xbean 
> factory:java.lang.ExceptionInInitializerError 
> at 
> org.apache.activemq.util.IOExceptionSupport.create(IOExceptionSupport.java:27) 
> at 
> org.apache.activemq.broker.BrokerFactory.createBrokerFactoryHandler(BrokerFactory.java:43) 
> at 
> org.apache.activemq.broker.BrokerFactory.createBroker(BrokerFactory.java:70) 
> at 
> org.apache.activemq.broker.BrokerFactory.createBroker(BrokerFactory.java:54) 
> at 
> org.apache.activemq.console.command.StartCommand.startBroker(StartCommand.java:115) 
> at 
> org.apache.activemq.console.command.StartCommand.runTask(StartCommand.java:74) 
> ... 10 more Caused by: 
> java.lang.ExceptionInInitializerError 
> at 
> sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native 
> Method) at 
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) 
> at 
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) 
> at 
> java.lang.reflect.Constructor.newInstance(Constructor.java:494) 
> at 
> java.lang.Class.newInstance0(Class.java:350) 
> at 
> java.lang.Class.newInstance(Class.java:303) 
> at 
> org.apache.activemq.util.FactoryFinder.newInstance(FactoryFinder.java:55) 
> at 
> org.apache.activemq.util.FactoryFinder.newInstance(FactoryFinder.java:42) 
> at 
> org.apache.activemq.broker.BrokerFactory.createBrokerFactoryHandler(BrokerFactory.java:41) 
> ... 14 more Caused by: 
> org.apache.commons.logging.LogConfigurationException: 
> org.apache.commons.logging.LogConfigurationException: 
> No suitable Log constructor 
> [Ljava.lang.Class;@abcc03 for 
> org.apache.commons.logging.impl.Log4JLogger 
> (Caused by 
> java.lang.NoClassDefFoundError: 
> org/apache/log4j/Category) (Caused by 
> org.apache.commons.logging.LogConfigurationException: 
> No suitable Log constructor 
> [Ljava.lang.Class;@abcc03 for 
> org.apache.commons.logging.impl.Log4JLogger 
> (Caused by 
> java.lang.NoClassDefFoundError: 
> org/apache/log4j/Category)) at 
> org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:543) 
> at 
> org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:235) 
> at 
> org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:209) 
> at 
> org.apache.commons.logging.LogFactory.getLog(LogFactory.java:351) 
> at 
> org.apache.activemq.xbean.XBeanBrokerFactory.<clinit>(XBeanBrokerFactory.java:43) 
> ... 23 more Caused by: 
> org.apache.commons.logging.LogConfigurationException: 
> No suitable Log constructor 
> [Ljava.lang.Class;@abcc03 for 
> org.apache.commons.logging.impl.Log4JLogger 
> (Caused by 
> java.lang.NoClassDefFoundError: 
> org/apache/log4j/Category) at 
> org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor(LogFactoryImpl.java:413) 
> at 
> org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:529) 
> ... 27 more Caused by: 
> java.lang.NoClassDefFoundError: 
> org/apache/log4j/Category  at 
> java.lang.Class.getDeclaredConstructors0(Native 
> Method) at 
> java.lang.Class.privateGetDeclaredConstructors(Class.java:2357) 
> at 
> java.lang.Class.getConstructor0(Class.java:2671) 
> at 
> java.lang.Class.getConstructor(Class.java:1629) 
> at 
> org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor(LogFactoryImpl.java:410) 
> ... 28 more ERROR: 
> java.lang.Exception: 
> java.io.IOException: Could not load 
> xbean 
> factory:java.lang.ExceptionInInitializerError 
> java.lang.Exception: 
> java.io.IOException: Could not load 
> xbean 
> factory:java.lang.ExceptionInInitializerError 
> at 
> org.apache.activemq.console.command.StartCommand.runTask(StartCommand.java:99) 
> at 
> org.apache.activemq.console.command.AbstractCommand.execute(AbstractCommand.java:57) 
> at 
> org.apache.activemq.console.command.ShellCommand.runTask(ShellCommand.java:129) 
> at 
> org.apache.activemq.console.command.AbstractCommand.execute(AbstractCommand.java:57) 
> at 
> org.apache.activemq.console.command.ShellCommand.main(ShellCommand.java:79) 
> at 
> sun.reflect.NativeMethodAccessorImpl.invoke0(Native 
> Method) at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
> at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
> at 
> java.lang.reflect.Method.invoke(Method.java:585) 
> at 
> org.apache.activemq.console.Main.runTaskClass(Main.java:225) 
> at 
> org.apache.activemq.console.Main.main(Main.java:106) 
> Caused by: java.io.IOException: Could 
> not load xbean 
> factory:java.lang.ExceptionInInitializerError 
> at 
> org.apache.activemq.util.IOExceptionSupport.create(IOExceptionSupport.java:27) 
> at 
> org.apache.activemq.broker.BrokerFactory.createBrokerFactoryHandler(BrokerFactory.java:43) 
> at 
> org.apache.activemq.broker.BrokerFactory.createBroker(BrokerFactory.java:70) 
> at 
> org.apache.activemq.broker.BrokerFactory.createBroker(BrokerFactory.java:54) 
> at 
> org.apache.activemq.console.command.StartCommand.startBroker(StartCommand.java:115) 
> at 
> org.apache.activemq.console.command.StartCommand.runTask(StartCommand.java:74) 
> ... 10 more Caused by: 
> java.lang.ExceptionInInitializerError 
> at 
> sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native 
> Method) at 
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) 
> at 
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) 
> at 
> java.lang.reflect.Constructor.newInstance(Constructor.java:494) 
> at 
> java.lang.Class.newInstance0(Class.java:350) 
> at 
> java.lang.Class.newInstance(Class.java:303) 
> at 
> org.apache.activemq.util.FactoryFinder.newInstance(FactoryFinder.java:55) 
> at 
> org.apache.activemq.util.FactoryFinder.newInstance(FactoryFinder.java:42) 
> at 
> org.apache.activemq.broker.BrokerFactory.createBrokerFactoryHandler(BrokerFactory.java:41) 
> ... 14 more Caused by: 
> org.apache.commons.logging.LogConfigurationException: 
> org.apache.commons.logging.LogConfigurationException: 
> No suitable Log constructor 
> [Ljava.lang.Class;@abcc03 for 
> org.apache.commons.logging.impl.Log4JLogger 
> (Caused by 
> java.lang.NoClassDefFoundError: 
> org/apache/log4j/Category) (Caused by 
> org.apache.commons.logging.LogConfigurationException: 
> No suitable Log constructor 
> [Ljava.lang.Class;@abcc03 for 
> org.apache.commons.logging.impl.Log4JLogger 
> (Caused by 
> java.lang.NoClassDefFoundError: 
> org/apache/log4j/Category)) at 
> org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:543) 
> at 
> org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:235) 
> at 
> org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:209) 
> at 
> org.apache.commons.logging.LogFactory.getLog(LogFactory.java:351) 
> at 
> org.apache.activemq.xbean.XBeanBrokerFactory.<clinit>(XBeanBrokerFactory.java:43) 
> ... 23 more Caused by: 
> org.apache.commons.logging.LogConfigurationException: 
> No suitable Log constructor 
> [Ljava.lang.Class;@abcc03 for 
> org.apache.commons.logging.impl.Log4JLogger 
> (Caused by 
> java.lang.NoClassDefFoundError: 
> org/apache/log4j/Category) at 
> org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor(LogFactoryImpl.java:413) 
> at 
> org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:529) 
> ... 27 more Caused by: 
> java.lang.NoClassDefFoundError: 
> org/apache/log4j/Category  at 
> java.lang.Class.getDeclaredConstructors0(Native 
> Method) at 
> java.lang.Class.privateGetDeclaredConstructors(Class.java:2357) 
> at 
> java.lang.Class.getConstructor0(Class.java:2671) 
> at 
> java.lang.Class.getConstructor(Class.java:1629) 
> at 
> org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor(LogFactoryImpl.java:410) 
> ... 28 more 

답변

1

그래서 다른 log4j jar 파일과 충돌이있었습니다. 내 생각에 아마 충돌하는 log4j 플러그인 일 것이다. log4j를 activemq lib/optional에서 삭제하면 작동합니다.

1

이 보인다. log4j 항아리가 classpath에 있는지 확인해야합니다.

편집 : 변수 ACTIVEMQ_CLASSPATH의 값을 검사 할 수있는 방법이 있습니까? 변수를 설정하는 스크립트를 통해 이것을 호출하는 경우 클래스 패스에 있다고 생각되는 모든 디렉토리를 추가하도록 스크립트를 조사해야 할 수도 있습니다.

+0

예, log4j를 인식하지 못합니다. 나는 log4j가 activemq 디렉토리의 lib/optional 디렉토리 내에 있기 때문에 그것을 이해하지 못한다. 그리고 activemq는 자신의 ACTIVEMQ_CLASSPATH 변수를 설정하고 있습니다. 로드하지 않으면 다운로드에 포함시키는 것이 무엇입니까? 아니면 내 컴퓨터에 충돌이있을 수 있습니까? 나는 그것이 무엇을 얻고 있는지를보기 위해 어떻게 확인하는지조차 모른다. 또는 그것이 전혀 얻지 못한다면 – brad

관련 문제