2014-07-09 18 views
0

我将骆驼捆绑包部署在服务组合中,它运行良好一段时间,现在多次运行后,同一捆绑包会告诉下面的异常。当骆驼程序正在运行时,捆绑包不再有效

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--> 

如果我在这里使用过,这里是问题,那么当第二个条件到来时应该怎么做才能退出。

有什么办法可以阻止这里的进一步执行吗?那么单独停止执行该特定请求并不停止路由的方法是什么?在这种情况下,还有其他的请求不会受到该站点的影响,并且可以用于其他请求。

我认为在http://camel.apache.org/intercept.html链接它说,用于停止进一步执行,但会以任何方式停止路线。

这是否会导致绑定不再有效。从这里出现了一个问题,其中什么是CamelContext.stop()的spring配置等价物?

后我的另一个评论下面哪个指示这里。

此外,我们的工作环境中骆驼有更多的定制捆绑,这有助于我们的发展。这更具体地动态加载路由。这是否会成为我们给camelCOntext.Start()等....时路径可能无法正确启动的原因之一?

+0

你是如何部署骆驼路线的?你只是部署一个XML或捆绑? –

+0

像往常一样的完整捆绑包。它正在处理一些请求,并且相同的捆绑包抛出了这个错误。一个简单的重新启动确实解决了这个问题,但好奇地知道它是因为某个特定原因还是某件事。 –

+0

你能告诉我们你有骆驼路线吗? –

回答

0

从骆驼路线,我不能说任何错误。 正如你刚刚问了另一个问题,我只是在这里发布我的答案:

路由中的停止元素只适用于交换,这意味着路由到这个点的交换将不再被处理。如果你想停止路由或骆驼上下文,你需要调用CamelContext.stop()。

如果可以在Spring配置中使用camel-controlbus组件。

+0

和CamelCOntext.stop()有什么区别? –

+0

在上面的问题中增加了更多信息。请你可以检查他们吗?并帮助我 –

+0

我不认为停止骆驼上下文可能会导致该包无效。你可以使用osgi命令来检查骆驼应用程序捆绑状态吗? –