Apache camel 运行camel程序时,捆绑包不再有效

Apache camel 运行camel程序时,捆绑包不再有效,apache-camel,apache-servicemix,fuseesb,Apache Camel,Apache Servicemix,Fuseesb,我在ServiceMix中部署了我的驼峰包,它运行了一些时间,现在在多次运行之后,同一个包显示以下异常 org.apache.camel.runtimeexception :java.lang.illegalstateexception: bundlecontext is no longer valid 同样的场景在一些运行中运行良好,在一些连续运行中,它突然抛出上述错误 重新启动smx或卸载捆绑包会解决问题吗?这是我第三次面对这个问题,一直以来,一次小小的重启就解决了这个问题。如果这是其他

我在ServiceMix中部署了我的驼峰包,它运行了一些时间,现在在多次运行之后,同一个包显示以下异常

org.apache.camel.runtimeexception :java.lang.illegalstateexception:  bundlecontext is no longer valid
同样的场景在一些运行中运行良好,在一些连续运行中,它突然抛出上述错误

重新启动smx或卸载捆绑包会解决问题吗?这是我第三次面对这个问题,一直以来,一次小小的重启就解决了这个问题。如果这是其他问题,请提出建议

在我下面的评论之后

我在代码中使用了如下代码

<choice>
<when>
<simple>some condition</simple>

</when>
<when>
<simple>some other condition</simple>
<stop/>
<when>
</choice>
<!--Still more code and logic exists-->

某些条件
其他条件
如果我在这里使用了,这就是这里的问题,那么当第二个条件出现时,我应该如何退出

我有没有办法阻止进一步的处决?这就是仅停止该特定请求的执行而不停止路由的方法吗?在这种情况下,其他请求将不受此停止的影响,并适用于其他请求

我认为,在链接中,它说,使用停止进一步执行,但它会停止任何方式的路线

这将导致捆绑包不再有效。由此产生了一个问题,CamelContext.stop()的spring配置等价物在哪里

在我下面的另一条评论之后,请点击此处。


此外,我们工作的环境中,骆驼有更多的定制捆绑包,这简化了我们的开发。这更具体地说是动态加载路由。这是否是当我们给出camelCOntext.Start()等时,路由可能无法正确启动的原因之一?

从camel路由,我看不出有任何错误。 你刚才问了另一个问题,我就把我的答案贴在这里:

路由中的stop元素仅适用于交换,这意味着将不再处理路由到此点的交换。如果要停止路由或CamelContext,则需要调用CamelContext.stop()


如果您可以使用组件在Spring配置中完成此操作。

您是如何部署骆驼路线的?您是刚部署了xml还是捆绑包?还是像往常一样部署了完整的捆绑包。。它正在处理一些请求,而同一个捆绑包抛出了此错误。简单的重新启动确实解决了问题,但很想知道这是否是因为特定的原因或其他原因。你能告诉我们你的骆驼路线吗?@WillemJiang我在我的路线中使用了它,这会使捆绑包不再无效吗?我已经在这个问题上添加了一些信息,以明确我的要求。我想您刚才在这里问了另一个问题。与CamelCOntext.stop()之间的区别是什么?为上述问题添加了更多信息。请检查一下好吗?并且帮助meI不要认为停止骆驼上下文会导致捆绑包无效。您可以使用osgi命令来检查camel应用程序包的状态吗?这种情况有时会发生,但我想我必须等到下次它发生时再进行测试。您能告诉我任何一个可能发生这种情况的场景吗?您是否通过安装或卸载该功能来刷新捆绑包上下文?