我正在尝试将ActiveMQ 5.10.0
与SoapUI 4.6
和Hermes 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)
答案 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。