我想知道是否有可能从骆驼上下文返回全部或部分路由 - 我想使用Java进行配置,然后检索它将其导出到XML。返回骆驼路由配置到xml
有没有办法做到这一点?我还没有找到任何文件,我希望我错过了一些东西,并有一种方法。
我想知道是否有可能从骆驼上下文返回全部或部分路由 - 我想使用Java进行配置,然后检索它将其导出到XML。返回骆驼路由配置到xml
有没有办法做到这一点?我还没有找到任何文件,我希望我错过了一些东西,并有一种方法。
是的,你正在寻找的是这个JMX MBean接口:
http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/api/management/mbean/ManagedCamelContextMBean.html#dumpRoutesAsXml()
基本上JMX默认情况下,在骆驼启用,所以你可以使用像JConsole的一个JMX控制台只连接到运行骆驼的JVM 。然后跟踪像org.apache.camel:context=...,type=context,name=...
这样的CamelContext MBean并调用操作dumpRoutesAsXml()
。并且您将获得Camel上下文中的所有路由为XML。
关于骆驼和JMX的更多信息,可参考本文档,以及:
http://camel.apache.org/camel-jmx.html
好的,您的问题仍然不清楚。
但有2个选项适合你。
蓝图容器接受热部署,这意味着您可以将骆驼XML放在一个文件夹中,它只会启动路由。它还取决于你正在尝试整合的系统类型,例如:为数据库相关的整合做这件事有点复杂。
您可以使用路由生成器,基本上可以在运行时创建路由并启动路由。
请在你的问题附近发表更多细节,以便更好地理解。如果你能清楚地解释你的需求,你甚至可能不需要这两种方法。
您可以使用
List<RouteDefinition> routes = camelContext.getRouteDefinitions();
RoutesDefinition def = new RoutesDefinition();
def.setRoutes(routes);
String xml = ModelHelper.dumpModelAsXml(camelContext, def);
如果你想更换物业占位符,请参阅到方法ManagedCamelContext.dumpRoutesAsXml
不知道我明白,你想在java dsl中配置路由,但使用蓝图xml导出它?我不认为你可以直接做到这一点。你可以这样做,如果你安装hawtio并在hawtio内运行骆驼路由。然后登录并查看路由,并以xml格式显示它们。 –