在ReplicatedDB ActiveMQ中,端口超出范围

我有3个复制的机器与Zookeeper和ActiveMQ(Linux)。

我可以确认zookeeper工作正常,因为我可以看到他们的端口(2888和3888)通过netstat监听。 问题在ActiveMQ方面得到证实。

在奴隶机器上,一切似乎都运行良好,因为ActiveMQ没有logging任何错误或警告。 但是在主机中,由于IllegalArgumentException stacktrace,日志不同。

这是来自activemq.log的错误消息:

 ERROR | Error in thread 'ActiveMQ BrokerService[broker] Task-1' java.lang.IllegalArgumentException: port out of range:-1 at java.net.InetSocketAddress.checkPort(InetSocketAddress.java:143)[:1.7.0_111] at java.net.InetSocketAddress.<init>(InetSocketAddress.java:185)[:1.7.0_111] at org.fusesource.hawtdispatch.transport.TcpTransportServer.<init>(TcpTransportServer.java:52)[hawtdispatch-transport-1.22.jar:1.22] at org.apache.activemq.leveldb.replicated.MasterLevelDBStore.start_protocol_server(MasterLevelDBStore.scala:134)[activemq-leveldb-store-5.13.4.jar:5.13.4] at org.apache.activemq.leveldb.replicated.MasterLevelDBStore.doStart(MasterLevelDBStore.scala:111)[activemq-leveldb-store-5.13.4.jar:5.13.4] at org.apache.activemq.util.ServiceSupport.start(ServiceSupport.java:55)[activemq-client-5.13.4.jar:5.13.4] at org.apache.activemq.leveldb.replicated.ElectingLevelDBStore$$anonfun$start_master$1.apply$mcV$sp(ElectingLevelDBStore.scala:230)[activemq-leveldb-store-5.13.4.jar:5.13.4] at org.fusesource.hawtdispatch.package$$anon$4.run(hawtdispatch.scala:330)[hawtdispatch-scala-2.11-1.22.jar:1.22] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)[:1.7.0_111] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)[:1.7.0_111] at java.lang.Thread.run(Thread.java:745)[:1.7.0_111] 

有人可以解释为什么我得到这个错误,我该如何解决?

Addtional Info:我的zookeeper和activemqconfigurationhttps://gist.github.com/kana0011/3ad1c960b9aa24b8af8d7b623c4cb2b3 (省略的部分几乎是默认的)

我发现问题是replicatedLevelDB bean中bind属性的值。

值应该是: tcp://0.0.0.0:0端口0

而不是: tcp://0.0.0.0没有端口设置