运行 集成后 activeMQ 顺利关闭
Smooth shutdown for activeMQ after running integrat
我正在使用 ActiveMQ 运行 我使用 mvn build 进行集成测试。我的pom.xml先触发activemq,再触发集成测试,这样就可以使用上面的activeMQ实例来传递消息了。
它工作正常但没有顺利关闭。当 mvn 构建结束并且所有测试都成功时,构建看起来不错。但是 activemq 在关闭时吐出以下错误:-
'[INFO] Apache ActiveMQ 5.7.0 (localhost, ID:LB3290FPF-54398-1427490319466-0:1) is shutting down
Exception in thread "ActiveMQ ShutdownHook" java.lang.NoClassDefFoundError: org/apache/activemq/transport/vm/VMTransportFactory
at org.apache.activemq.broker.BrokerService.stop(BrokerService.java:750)
at org.apache.activemq.xbean.XBeanBrokerService.stop(XBeanBrokerService.java:91)
at org.apache.activemq.broker.BrokerService.containerShutdown(BrokerService.java:2303)
at org.apache.activemq.broker.BrokerService.run(BrokerService.java:2270)
Caused by: java.lang.ClassNotFoundException: org.apache.activemq.transport.vm.VMTransportFactory
at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50)
at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:259)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:235)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:227)
... 4 more
[INFO] Connector tcp://localhost:61616?useJmx=true&persistent=false Stopped'
有没有一种方法可以让 Maven 在 Maven 构建完成时顺利关闭 activeMQ 而不会出现上述异常?以下是一些相关的详细信息:-
- activeMQ uri : tcp://localhost:61616?useJmx=false&persistent=false
- 分叉:真
- activeMQ-核心:5.7.0
- maven-activemq-插件:5.7.0
您需要将 useShutdownHook="false"
添加到 XML 配置的 <broker>
元素中。当 ActiveMQ 被嵌入且配置不正确时会出现此问题。
示例配置:
<amq:broker useJmx="false" persistent="false" useShutdownHook="false">
...
</amq:broker>
参考:
类似话题:
ActiveMQ embedded broker, exception in shutdown hook
Unable to shutdown embedded activeMQ service using the built in BrokerService.stop call
希望对您有所帮助。
您可以在集成测试完成后停止 activemq 实例。只需将以下行添加到您的 pom。
<execution>
<id>stop-activemq</id>
<goals>
<goal>stop</goal>
</goals>
<phase>post-integration-test</phase>
</execution>
我正在使用 ActiveMQ 运行 我使用 mvn build 进行集成测试。我的pom.xml先触发activemq,再触发集成测试,这样就可以使用上面的activeMQ实例来传递消息了。
它工作正常但没有顺利关闭。当 mvn 构建结束并且所有测试都成功时,构建看起来不错。但是 activemq 在关闭时吐出以下错误:-
'[INFO] Apache ActiveMQ 5.7.0 (localhost, ID:LB3290FPF-54398-1427490319466-0:1) is shutting down
Exception in thread "ActiveMQ ShutdownHook" java.lang.NoClassDefFoundError: org/apache/activemq/transport/vm/VMTransportFactory
at org.apache.activemq.broker.BrokerService.stop(BrokerService.java:750)
at org.apache.activemq.xbean.XBeanBrokerService.stop(XBeanBrokerService.java:91)
at org.apache.activemq.broker.BrokerService.containerShutdown(BrokerService.java:2303)
at org.apache.activemq.broker.BrokerService.run(BrokerService.java:2270)
Caused by: java.lang.ClassNotFoundException: org.apache.activemq.transport.vm.VMTransportFactory
at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50)
at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:259)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:235)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:227)
... 4 more
[INFO] Connector tcp://localhost:61616?useJmx=true&persistent=false Stopped'
有没有一种方法可以让 Maven 在 Maven 构建完成时顺利关闭 activeMQ 而不会出现上述异常?以下是一些相关的详细信息:-
- activeMQ uri : tcp://localhost:61616?useJmx=false&persistent=false
- 分叉:真
- activeMQ-核心:5.7.0
- maven-activemq-插件:5.7.0
您需要将 useShutdownHook="false"
添加到 XML 配置的 <broker>
元素中。当 ActiveMQ 被嵌入且配置不正确时会出现此问题。
示例配置:
<amq:broker useJmx="false" persistent="false" useShutdownHook="false">
...
</amq:broker>
参考:
类似话题:
ActiveMQ embedded broker, exception in shutdown hook
Unable to shutdown embedded activeMQ service using the built in BrokerService.stop call
希望对您有所帮助。
您可以在集成测试完成后停止 activemq 实例。只需将以下行添加到您的 pom。
<execution>
<id>stop-activemq</id>
<goals>
<goal>stop</goal>
</goals>
<phase>post-integration-test</phase>
</execution>