在使用控制台的maven运行单元测试时,我无法初始化ActiveMQ(activemq-core:5.7.0)。当我从Intellij运行时,一切正常。
Intellij runner的结果:
2016-07-04 14:21:22 DEBUG JNDIHelper:90 - {java.naming.provider.url=vm://localhost, java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory, java.naming.security.authentication=true}
2016-07-04 14:21:22 DEBUG ManagementContext:492 - Creating RMIRegistry on port 1099
2016-07-04 14:21:22 DEBUG ManagementContext:507 - Probably not using JRE 1.4: mx4j.tools.naming.NamingService
2016-07-04 14:21:22 DEBUG ManagementContext:522 - Created JMXConnectorServer javax.management.remote.rmi.RMIConnectorServer@52ac6ca7
2016-07-04 14:21:22 DEBUG ManagementContext:120 - Starting JMXConnectorServer...
mvn test的结果:
2016-07-04 14:00:26 DEBUG JNDIHelper:90 - {java.naming.provider.url=vm://localhost, java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory, java.naming.security.authentication=true}
2016-07-04 14:00:26 DEBUG ManagementContext:509 - Failed to create local registry. This exception will be ignored.
java.lang.NoSuchMethodError: org.slf4j.helpers.MessageFormatter.format(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/String;
at org.slf4j.impl.Log4jLoggerAdapter.debug(Log4jLoggerAdapter.java:223)
at org.apache.activemq.broker.jmx.ManagementContext.createConnector(ManagementContext.java:492)
at org.apache.activemq.broker.jmx.ManagementContext.findTigerMBeanServer(ManagementContext.java:4
...
2016-07-04 14:35:16 ERROR ManagementContext:423 - Failed to initialize MBeanServer
java.lang.NoSuchMethodError: org.slf4j.helpers.MessageFormatter.format(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/String;
...
2016-07-04 14:35:16 DEBUG ManagementContext:107 - Error invoking start on mbean null. This exception is ignored.
java.lang.NullPointerException
at org.apache.activemq.broker.jmx.ManagementContext.start(ManagementContext.java:102)
at org.apache.activemq.broker.BrokerService.startManagementContext(BrokerService.java:2367)
...
我正在使用的基础设施:
<infrastructure name="localhost" host="vm://localhost"
port="0" channel="" connectionType="JNDI" connectionFactory="ConnectionFactory"
contextFactory="org.apache.activemq.jndi.ActiveMQInitialContextFactory"
reconnectInterval="30" reconnectIntervalTimeUnit="SECONDS"
reconnectAttempts="30" />