我想知道是否可以从camel上下文返回全部或部分路由 - 我想使用Java进行配置,然后检索它以将其导出到xml。
有没有办法实现这一目标?我还没有在文档中找到任何内容,我希望我错过了一些东西并且有办法。
答案 0 :(得分:2)
是的,您正在寻找的是这个JMX MBean接口:
http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/api/management/mbean/ManagedCamelContextMBean.html#dumpRoutesAsXml()
基本上,在Camel中默认启用JMX,因此您可以使用JConsole等JMX控制台连接到运行Camel的JVM。然后跟踪像org.apache.camel:context=...,type=context,name=...
这样的CamelContext MBean并调用操作dumpRoutesAsXml()
。并且您将获取Camel上下文中的所有路由为XML。
有关Camel和JMX的更多信息,您也可以参考此文档:
http://camel.apache.org/camel-jmx.html
答案 1 :(得分:1)
您可以使用
List<RouteDefinition> routes = camelContext.getRouteDefinitions();
RoutesDefinition def = new RoutesDefinition();
def.setRoutes(routes);
String xml = ModelHelper.dumpModelAsXml(camelContext, def);
如果您想要替换属性占位符,请参阅ManagedCamelContext.dumpRoutesAsXml方法
答案 2 :(得分:0)
好的,你的问题仍然不明确。
但是有两种选择。
Blueprint容器接受热部署,这意味着您只需将Camel XML放入文件夹即可启动该路径。它还取决于您尝试集成的系统类型,例如:为数据库相关的集成执行此操作有点复杂。
您可以使用路径构建器,基本上您可以在运行时创建路径并启动路径。
请发布有关您问题的更多详情,以便更好地了解。如果您能清楚地解释您的要求,您可能甚至不需要两种方法。
答案 3 :(得分:0)