【发布时间】:2014-08-08 12:17:09
【问题描述】:
我有一个 Apache Camel 上下文,它是大型 Spring 应用程序的一部分。该应用程序具有基于 Web 的管理 UI。我希望能够从此 UI 中停止/启动/暂停/恢复骆驼路线。我怎样才能做到这一点?
目前我的 Camel 上下文是在 Spring 上下文文件中定义的,并在部署 Spring 应用程序时自动启动。我的路由是在扩展 SpringRouteBuilder 的 Java 类中定义的。
我有:
骆驼上下文.xml:
<beans>
<!--bootstrap camel context-->
<camelContext xmlns="http://camel.apache.org/schema/spring">
<package>com.package</package>
</camelContext>
</beans>
在主 Spring 上下文中导入。然后我有在 com.package 中扩展 SpringRouteBuilder 的类
有没有更好的方法来做到这一点,以便我可以在 UI 中有事件时以编程方式控制 Camel 上下文?
【问题讨论】:
-
是你的代码中没有访问骆驼上下文的问题吗?否则骆驼上下文有方法来获取路线,以及停止和启动它们。你也可以使用camel JMX接口来做同样的事情。
-
是的,我无权访问 Camel 上下文。
-
我正在考虑使用 OnCompletion 并编写一个处理器来检查数据库字段并在必要时在 Camel 上下文上调用 stop。对这种方法有什么意见吗?
-
看看骆驼JMX方法。这将允许您直接在路线等上调用停止。
-
我已经意识到 Camel 上下文只是一个 bean,可以根据需要自动装配和使用。见camel.465427.n5.nabble.com/…
标签: java spring apache-camel