从管理UI启动和停止Apache Camel路由

时间:2014-08-05 10:06:53

标签: java spring apache-camel

我有一个Apache Camel上下文,它是一个大型Spring应用程序的一部分。该应用程序具有基于Web的管理UI。我希望能够在此UI中停止/启动/暂停/恢复驼峰路线。我怎样才能做到这一点?

目前我的Camel上下文是在Spring上下文文件中定义的,并在部署Spring应用程序时自动启动。我的路由在扩展SpringRouteBuilder的Java类中定义。

我有:

驼context.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上下文?

1 个答案:

答案 0 :(得分:2)

您也可以像我们在hawtio(http://hawt.io/)中那样使用REST调用来远程管理Camel应用程序,这样我们就可以控制路由,查看统计信息,查看路由等等。通过使用一个名为jolokia(http://jolokia.org/)的优秀库,使JMX作为REST服务公开,这一切变得更加容易。每个JMX操作/属性都可以作为REST上的URI模板轻松调用。数据采用json格式。

你可以构建只使用REST进行通信的UI控制台,而不是绑定到Java或JMX世界等。

CamelContext上的Java API也允许您控制路由。还有控制总线EIP有更多细节:http://camel.apache.org/controlbus