maven - 运行 integrat 后 activeMQ 的平滑关闭

标签 maven testing jms activemq

我正在使用 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$6.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 而不会出现上述异常?以下是一些相关的详细信息:-

  1. activeMQ uri : tcp://localhost:61616?useJmx=false&persistent=false
  2. fork :真
  3. activeMQ-核心:5.7.0
  4. maven-activemq-plugin : 5.7.0

最佳答案

您需要添加 useShutdownHook="false"<broker> XML 配置的元素。当 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

希望对您有所帮助。

关于maven - 运行 integrat 后 activeMQ 的平滑关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29310367/

相关文章:

java - 将 JAVA HOME 作为参数传递给 mvn

Android 开发 - 封闭式 alpha 测试

ruby-on-rails - rcov中的 "total coverage"和 "code coverage"有什么区别?

scala - 在 Lift 中测试片段

jboss - 如何获取 Topic 中 JMS 消息的数量

java - JMS : Closing naming context fails

tomcat - 如果在多个tomcat context.xml中定义了qmanager jndi,则MQ JNDI异常

java - Maven 导入 AAR Classes.jar

java - Eclipse 显示空文件

maven - 使用 liferay developer studio 为 liferay maven 项目推荐文件夹结构