2009-06-29 5 views
1

das macht mich wahnsinnig. Ich versuche einfach activemq auf Mac OSX 10.5.7 laufen zu lassen. Ich habe Java Version 1.5.0_19 und activemq 5.2.0. Unten ist die Ausnahme, die ich bekomme, wenn bin/activemq ausgeführt wird. Es scheint nicht in der Lage zu sein, log4j zu finden, was merkwürdig ist, wenn man bedenkt, dass es mit activemq kommt und sich definitiv im Verzeichnis lib/optionals befindet. Das einzige, was mir einfällt, ist, dass ich irgendwo einen Konflikt habe, aber ich kann mir nicht vorstellen, wie das möglich ist. Wenn jemand irgendwelche Tipps hat, bin ich ganz Ohr, Googeln produziert fast keine Ergebnisse mit dem gleichen Fehler, und die eine Person, die den genauen Fehler hat, hat keine Lösung.activemq Kein passender Log-Konstruktor

> 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 

Antwort

1

Also war es definitiv ein Konflikt mit einer anderen Log4j Jar-Datei. Ich denke, es ist wahrscheinlich mein Eclipse-Plugin log4j, das widersprüchlich war. Wenn ich log4j von activemq lib/optional lösche, funktioniert es.

1

Das sieht aus wie die Ausnahme von einem NoClassDefFoundError für org.apache.log4j.Category verursacht wird. Sie sollten sicherstellen, dass das log4j Glas auf dem Klassenpfad ist.

Bearbeiten: Gibt es eine Möglichkeit, dass Sie den Wert der Variablen ACTIVEMQ_CLASSPATH überprüfen können? Wenn Sie dies über ein Skript aufrufen, das die Variable festlegt, müssen Sie möglicherweise in das Skript einsteigen, um sicherzustellen, dass es alle Verzeichnisse, die Sie für den Klassenpfad halten, hinzufügt.

+0

ya ich kann sehen, dass es log4j nicht erkennt. Ich verstehe das aber nicht, weil sich log4j im Verzeichnis lib/optional im activemq-Verzeichnis befindet. Und activemq setzt seine eigene ACTIVEMQ_CLASSPATH-Variable. Was bringt es, es in den Download aufzunehmen, wenn es nicht geladen wird? Oder könnte es einen Konflikt auf meiner Maschine geben? Ich weiß nicht, wie ich überhaupt nachschaue, um zu sehen, welches Glas es bekommt. oder wenn es überhaupt einen bekommt – brad