如何在PaxExam Test中

我正在跑步

  • SerivceMix 6.1.2
  • 骆驼2.16.3
  • PaxExam 4.10
  • @Configure将activeMQ 5.12.3嵌入ServiceMix作为一项功能,以模拟外部功能

当我测试具有AMQ端点的Camel路由并且测试方法完成时,AMQ会比Camel路由更早地关闭。导致路由端点抛出很多丢失的连接异常,尤其是在进行飞行时。 AMQ的起始级别比我的路线低得多。我如何确保关机顺序: -路线 -amq, -服务组合 ?

lookme123 回答:如何在PaxExam Test中

指定让您的骆驼路线(或测试捆绑包)取决于ActiveMQ代理服务。当捆绑软件被关闭时,它们将以相反的依赖关系顺序关闭,并且代理(不依赖于您的任何编码服务)应该在最后关闭。

<bean id="pooledConnectionFactory" 
class="org.apache.activemq.pool.PooledConnectionFactory"
init-method="start" destroy-method="stop">
 ...
</bean>

已更新:

  1. 在提供经纪人的服务上添加对您的蓝图文件的引用
  2. 在您的骆驼路线中添加“依赖”属性
  3. 这使OSGi可以基于显式依赖性与任意性(您现在拥有的)或数字顺序约定确定性地配置正确的启动和关闭。

    <camelContext depends-on="activemq-broker">
    </camelContext>
    
    <reference id="activemq-broker" 
        availability="mandatory" 
        timeout="5000"
        interface="org.osgi.service.cm.ManagedService" 
        filter="(service.pid=org.apache.servicemix.activemq.service)"/> 
    

本文链接:https://www.f2er.com/2487076.html

大家都在问