2009-06-29 14 views
1

これは私を狂ってしまいます。私は単にMac OSX 10.5.7でactivemqを実行しようとしています。私はjavaバージョン1.5.0_19とactivemq 5.2.0を持っています。以下は、bin/activemqを実行しているときの例外です。 log4jが見つからないと思われるのは、それがactivemqに付属していて、確かにlib/optionalsディレクトリにあると考えると奇妙です。私が考えることのできる唯一のことはどこかで葛藤があることですが、これがどのように可能であるかは想像できません。誰もが私はすべての耳である任意のヒントを持っている場合、グーグルは同じエラーでほとんど結果を生成し、正確なエラーを持っている人は解決策を持っていません。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ファイルと競合していました。私はそれがおそらく競合していた私のEclipseプラグインlog4jだと思う。私がlog4jをactivemq lib/optionalから削除すると動作します。

1

例外はorg.apache.log4j.CategoryためNoClassDefFoundErrorによって引き起こされているようにこれが見えます。 log4j jarがクラスパス上にあることを確認する必要があります。

編集:ACTIVEMQ_CLASSPATH変数の値を検査する方法はありますか?変数を設定しているスクリプトでこれを呼び出す場合は、クラスパスにあると思われるすべてのディレクトリがスクリプトに追加されていることを確認する必要があります。

+0

私はそれがlog4jを認識しないことがわかります。 log4jはactivemqディレクトリのlib/optionalディレクトリ内にあるので、私はそれを理解していません。そして、activemqは自身のACTIVEMQ_CLASSPATH変数を設定しています。それがロードされていない場合、それをダウンロードに含めるという点は何ですか?それとも、マシンに何らかの競合がありますか?私はどのようにそれが得ているかを確認するためにどのようにチェックするか分からない。またはそれが全く得られない場合 – brad

関連する問題