为什么Camel会两次调用端点的start()方法?

时间:2013-01-29 13:12:37

标签: java service methods apache-camel

我使用start()方法实例化与我正在使用的feed的连接,然后stop()将其拆除,但是在创建Endpoint之后,Camel继续在其上连续两次调用start()

虽然很明显很容易通过检查它是否已经启动过一次,或者(正如我所做)只是将启动代码移动到Endpoint的构造函数中 - 这让我觉得我不明白什么是start()方法试图实现(文档有用地建议:start()启动服务... grrreat

为什么会发生两次?


顺便说一句,createEndpointUri()也会被调用...这让我很怀疑,因为这是一个'懒惰的加载器,当没有提供uri时'...除了已经提供了一个...所以我想知道如果出于某种原因发生某些二次实例化

1 个答案:

答案 0 :(得分:2)

您应该扩展具有doStart |的ServiceSupport doStop方法,可以跟踪您的类的状态。然后Camel知道状态并且不会两次调用doStart。