Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ActiveMQ代理工厂找不到故障转移的工厂类_Java_Eclipse_Jar_Activemq_Pathing - Fatal编程技术网

Java ActiveMQ代理工厂找不到故障转移的工厂类

Java ActiveMQ代理工厂找不到故障转移的工厂类,java,eclipse,jar,activemq,pathing,Java,Eclipse,Jar,Activemq,Pathing,我在尝试使用BrokerFactory创建ActiveMQ代理时遇到此错误: java.io.IOException: Could not load failover factory:java.io.IOException: Could not find factory class for resource: META-INF/services/org/apache/activemq/broker/failover at org.apache.activemq.util.IOExcept

我在尝试使用BrokerFactory创建ActiveMQ代理时遇到此错误:

java.io.IOException: Could not load failover factory:java.io.IOException: Could not find factory class for resource: META-INF/services/org/apache/activemq/broker/failover
    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 ...
Caused by: java.io.IOException: Could not find factory class for resource: META-INF/services/org/apache/activemq/broker/failover
    at org.apache.activemq.util.FactoryFinder$StandaloneObjectFactory.loadProperties(FactoryFinder.java:96)
    at org.apache.activemq.util.FactoryFinder$StandaloneObjectFactory.create(FactoryFinder.java:58)
    at org.apache.activemq.util.FactoryFinder.newInstance(FactoryFinder.java:146)
    at org.apache.activemq.broker.BrokerFactory.createBrokerFactoryHandler(BrokerFactory.java:41)
    ... 5 more
这看起来像是路径错误或类似的东西,我只是无法找出根本原因

这是导致它的代码:

URI brokerUri = new URI(bean.getBrokerConfigUrl());
broker = BrokerFactory.createBroker(brokerUri);
以下是我正在呼叫的url:

failover:(tcp://internalUrl.net:port#,tcp://internalUrl.net:port#)?randomize=false&timeout=30000&jms.redeliveryPolicy.maximumRedeliveries=-1&jms.prefetchPolicy.all=0
那么这可能是一个路径错误吗?我没有包括一个必需的罐子吗?url的格式是否不正确?我在这里迷路了


编辑:添加了赏金

这不是类路径或jar问题。根据活动MQ文档,BrokerFactory仅支持xbean、broker或属性的URI,不支持故障转移URI

以下两个文档将为您提供有关设置和配置代理工厂的更多信息


您是如何运行此代码的?从独立Java或在某个容器中还是什么?另外,请务必编写您使用的软件的版本,因为这对于能够提供帮助非常重要。对不起!我在eclipse中运行和作为jar(由maven在eclipse中生成)运行时都会遇到这个错误。使用activemq 5.8.0,然后它的eclipse生成一个jar,这就是问题所在。JAR必须包含已发布的ActiveMQ JAR包含的一些元文件。我只是将JAR解包以进行检查,虽然这些元文件在那里,但它们不在meta-INF/services/org/apache/ActiveMQ/broker/中,就像代理工厂正在查找的错误一样。相反,它们位于META-INF/services/org/apache/activemq/transport/中。你知道为什么BrokerFacotry会在那里找吗?我到处找,但我找不到解决这个问题的办法,也找不到为什么会这样。嗨,蒂姆,这是个好发现。我也有同样的问题,第一次没有发现,但是错误声明…/activemq/transport/broker,而资源只有../activemq/broker/broker-一个修复方法可能是解压、移动资源并重新压缩,但这很糟糕。