我正在尝试建立JMS连接。在connectionFactory.createContext,我得到了ActiveMQ的版本装载机报道,属性文件丢失的错误:了java.lang.RuntimeException:JMS:activemq-version.properties不可用
所致activemq-version.properties不可 在org.apache .activemq.artemis.utils.VersionLoader.getVersion(VersionLoader.java:87)
我运行Eclipse中的项目 - 所以它是最有可能的一个Eclipse的classpath的问题,但是我无法找到缺少的库。
完整堆栈跟踪:
javax.jms.JMSRuntimeException: Failed to create session factory
at org.apache.activemq.artemis.jms.client.JmsExceptionUtils.convertToRuntimeException(JmsExceptionUtils.java:88)
at org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory.createContext(ActiveMQConnectionFactory.java:262)
at org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory.createContex t(ActiveMQConnectionFactory.java:248)
at at.cone.health.dispo.online.DispoServerFacadeImpl$JMSReceiverThread.run(DispoServerFacadeImpl.java:109)
Caused by: javax.jms.JMSException: Failed to create session factory
at org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory.createConnectionInternal(ActiveMQConnectionFactory.java:727)
at org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory.createContext(ActiveMQConnectionFactory.java:255)
... 2 more
Caused by: java.lang.RuntimeException: activemq-version.properties is not available
at org.apache.activemq.artemis.utils.VersionLoader.getVersion(VersionLoader.java:87)
at org.apache.activemq.artemis.core.protocol.core.impl.ActiveMQClientProtocolManager.<init>(ActiveMQClientProtocolManager.java:81)
at org.apache.activemq.artemis.core.protocol.core.impl.ActiveMQClientProtocolManagerFactory.newProtocolManager(ActiveMQClientProtocolManagerFactory.java:49)
at org.apache.activemq.artemis.core.client.impl.ServerLocatorImpl.newProtocolManager(ServerLocatorImpl.java:575)
at org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.<init>(ClientSessionFactoryImpl.java:173)
at org.apache.activemq.artemis.core.client.impl.ServerLocatorImpl.createSessionFactory(ServerLocatorImpl.java:757)
at org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory.createConnectionInternal(ActiveMQConnectionFactory.java:724)
... 3 more
其中我尝试建立连接的代码: 的InitialContext的NamingContext =新的InitialContext(ENV);
ConnectionFactory connectionFactory = (ConnectionFactory) namingContext.lookup(CONNECTION_FACTORY);
System.out.println("Got ConnectionFactory " + CONNECTION_FACTORY);
destination = (Destination) namingContext.lookup(DESTINATION);
System.out.println("Got JMS Endpoint " + DESTINATION);
final JMSContext context = connectionFactory.createContext("internal", "internal");
this.context = context;
JMSConsumer consumer = context.createConsumer(destination, "client='" + clientUID + "'", true);
// Then receive the same number of messages that were sent
该项目是基于ANT的,所以我不能使用maven依赖管理。尽管如此,服务器部分使用maven构建,所以我有一个本地maven存储库和一个指向.m2目录的eclipse构建路径变量M2_REPO。我试图在我的eclipse项目中设置一个库依赖项。我从eclipse运行项目,所以我们可以 - 首先忽略ANT相关的依赖关系,并只关注eclipse(但不包括maven)。
我从我的maven回购(使用我的M2_REPO变量,由路径扩展)向wildfly-client-all-10.0.0.Final.jar添加了一个库依赖项。该库在eclipse项目中正确显示为引用库。
我在eclipse maven项目中用相同的代码行实现了一个演示。在这里,我没有得到一个例外,在演示中我能够接收消息。所以我认为这是一个类路径问题。
我还在google和stackoverflow上搜索了缺少的activemq-version.properties,但没有找到任何相关的内容。我也没有找到一个名为activemq-version.properties的资源,即使它没有在演示项目(及其依赖项)中成功执行。