我按照 [1] 中的确切步骤在同一服务器中设置多个 ActiveMQ 代理。 当我启动第二个实例时,我总是遇到相同的错误。
我注意到的一件事是两个实例上的配置是相同的。例如,像 port 这样的配置在 activemq.xml 和 jetty.xml 中是相同的。
我什至更改了第二个实例的端口,这样它就不会因第一个实例而崩溃。但我得到了同样的异常。
https://sbforge.org/display/BITMAG/Running+multiple+activemq+instances+on+the+same+server
信息 | Apache ActiveMQ 5.9.0(实例1,ID:udara-54224-1391513355578-0:1)已关闭 信息|关闭 org.apache.activemq.xbean.XBeanBrokerFactory$1@33e228bc:启动日期 [2014 年 2 月 4 日星期二 06:29:14 EST 2014];上下文层次结构的根 警告 |上下文关闭时从 LifecycleProcessor 抛出异常 java.lang.IllegalStateException:LifecycleProcessor 未初始化 - 在通过上下文调用生命周期方法之前调用“刷新”: org.apache.activemq.xbean.XBeanBrokerFactory$1@33e228bc:启动日期 [2 月 4 日星期二:6: 2014 年美国东部时间 29:14];上下文层次结构的根 在org.springframework.context.support.AbstractApplicationContext.getLifecycleProcessor(AbstractApplicationContext.java:360) 在 org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1057) 在 org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:1010) 在 org.apache.activemq.hooks.SpringContextHook.run(SpringContextHook.java:30) 在org.apache.activemq.broker.BrokerService.stop(BrokerService.java:782) 在 org.apache.activemq.xbean.XBeanBrokerService.stop(XBeanBrokerService.java:122) 在org.apache.activemq.broker.BrokerService.start(BrokerService.java:574) 在 org.apache.activemq.xbean.XBeanBrokerService.afterPropertiesSet(XBeanBrokerService.java:73) 在 sun.reflect.NativeMethodAccessorImpl.invoke0( native 方法) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在 java.lang.reflect.Method.invoke(Method.java:597) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1608)
最佳答案
根据这些说明,您肯定需要更改每个实例的端口
each instance had its port numbers in <instance>/conf/activemq.xml and conf/jetty.xml edited, so instance1 listens on port 60001 and is managed on port 8001, instance2 on 60002 and 8002, instance3 on 60003 and 8003
您打印的堆栈跟踪是警告而不是错误 - 它仍然不起作用吗?您打印的日志是例如instance1 - 您是否正在尝试启动instance2?在这种情况下,您的 instance2 的配置是错误的。在instance2/conf/文件夹中进行文件搜索以查找对instance1的任何引用,这应该会告诉您错误所在
关于java - 在同一台机器上设置多个 ActiveMQ 代理时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21551373/