运行有没有可能是骆驼的路线可以调用不同的骆驼语境另一条路线。如何骆驼路线可以调用另一个路径在不同的背景下骆驼
例如,我有路线routeA并用路线routeB另一个骆驼上下文contextB骆驼上下文contextA。那么我怎么能从routeA调用routeB?
运行有没有可能是骆驼的路线可以调用不同的骆驼语境另一条路线。如何骆驼路线可以调用另一个路径在不同的背景下骆驼
例如,我有路线routeA并用路线routeB另一个骆驼上下文contextB骆驼上下文contextA。那么我怎么能从routeA调用routeB?
您可以使用虚拟机组件跨CamelContext实例发送交流。 http://camel.apache.org/vm.html
创建与vm:endpoint共享消耗(来自)的路由,并使用相同的端点名称从其他路由引用它。
如果您的路由应该使用与调用方相同的线程处理请求,请选择direct-vm :,否则,如果您希望交换由不同线程异步处理,请选择vm :. 为端点提供一个在整个JVM中唯一的名称。
在XML DSL,这是写如下:
<route>
<from uri="vm:logMessageToBackendSystem"/> <to uri="..."/>
</route>
在Java DSL,你表达了同样的事情:
from("vm:logMessageToBackendSystem").to(...);
在XML DSL,写:
<route>
<from uri="..."/>
<to uri="vm:logMessageToBackendSystem"/>
</route>
在Java DSL,这被写成:
from(...).to("vm:logMessageToBackendSystem");
或直接-VM,因为骆驼2.10的http://骆驼.apache.org/direct-vm.html只有一个特定的事情:如果您在Camel中使用POJO负载 - 那些POJO类必须由相同的ClassLoader加载 – Vadim