java.lang.NoClassDefFoundError:无法初始化类org.apache.activemq.util.IdGenerator

时间:2014-07-30 06:33:19

标签: activemq soapui

我正在尝试将ActiveMQ 5.10.0SoapUI 4.6Hermes 1.14一起使用。当我尝试添加队列时,我收到以下错误。我认为Hermes在任何装载的罐子中都找不到类型IdGenerator。这是:

activemq-client-5.10.0.jar
geronimo-j2ee-management_1.1_spec-1.0.1.jar
geronimo-jms_1.1_spec-1.1.1.jar

有谁知道这个类定义在哪里?我在二进制发行版中查找了activemq-util.jar,但是我找不到这样的文件。

错误:

java.lang.NoClassDefFoundError: Could not initialize class org.apache.activemq.util.IdGenerator 
        at org.apache.activemq.ActiveMQConnectionFactory.getClientIdGenerator(ActiveMQConnectionFactory.java:969) 
        at org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnection(ActiveMQConnectionFactory.java:363) 
        at org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnection(ActiveMQConnectionFactory.java:331) 
        at org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnection(ActiveMQConnectionFactory.java:303) 
        at org.apache.activemq.ActiveMQConnectionFactory.createQueueConnection(ActiveMQConnectionFactory.java:260) 
        at hermes.impl.jms.ConnectionManagerSupport.createConnection(ConnectionManagerSupport.java:147) 
        at hermes.impl.jms.ConnectionManagerSupport.createConnection(ConnectionManagerSupport.java:92) 
        at hermes.impl.jms.ConnectionSharedManager.reconnect(ConnectionSharedManager.java:81) 
        at hermes.impl.jms.ConnectionSharedManager.connect(ConnectionSharedManager.java:91) 
        at hermes.impl.jms.ConnectionSharedManager.getConnection(ConnectionSharedManager.java:104) 
        at hermes.impl.jms.ConnectionSharedManager.getObject(ConnectionSharedManager.java:142) 
        at hermes.impl.jms.ThreadLocalSessionManager.connect(ThreadLocalSessionManager.java:190) 
        at hermes.impl.jms.ThreadLocalSessionManager.getSession(ThreadLocalSessionManager.java:570) 
        at hermes.impl.jms.AbstractSessionManager.getDestination(AbstractSessionManager.java:460) 
        at hermes.impl.DefaultHermesImpl.getDestination(DefaultHermesImpl.java:367) 
        at hermes.browser.tasks.BrowseDestinationTask.invoke(BrowseDestinationTask.java:141) 
        at hermes.browser.tasks.TaskSupport.run(TaskSupport.java:175) 
        at hermes.browser.tasks.ThreadPool.run(ThreadPool.java:170) 
        at java.lang.Thread.run(Unknown Source)

3 个答案:

答案 0 :(得分:2)

这是非常古老的,但万一其他人试图让这个旋转起来......不要使用SoapUI附带的内置HermesJMS。显然有一个错误,它与ActiveMQ v5.8并没有很好地兼容[我试过5.11& 5.13并且有问题。作弊修复是安装独立[我必须从sourceforge获取]。

sourceforge jar安装时[假设版本为1.14]:java -jar hermes-installer-1.14.jar

安装完成后,您可以将此版本绑定到soapui或使用bat / sh文件启动它。我仍然遇到ActiveMQ版本5.13的问题,但版本5.11对我有效。

答案 1 :(得分:1)

IdGenerator类位于activemq-client jar中。以下是源树中搜索的结果:

  

/activemq-client/src/main/java/org/apache/activemq/util/IdGenerator.java

最近没有任何更改,所以我猜错误是误导性的,实际上是在创建类时加载的其他缺失依赖项。日志中是否有更多信息或“异常引起”?

答案 2 :(得分:0)

对谁感兴趣。这是我经常遇到的一个常见问题。我称之为jar版本不兼容。当使用最新(但未积极开发)的hermes 1.14和当前最新的Apache Active MQ 5.14时,我在标题和其他有趣的异常中获得异常。经过长时间的努力,我发现它是通过使用旧版本的Active MQ来修复的 - 比如5.3。