我在春天有以下 XML DSL 上下文定义:
<beans>
<camelContext>
<route>
<from uri="direct:foo"/>
<split parallelProcessing="true">
<simple>${body}</simple>
<to uri="direct:bar"/>
</split>
</route>
</camelContext>
</beans>
在我的测试中,我试图direct:bar
像这样编织端点:
context.getRouteDefinitions().get(0).adviceWith(context, new AdviceWithRouteBuilder() {
@Override
public void configure() throws Exception {
weaveByToString(".*direct:bar.*").replace().to("mock:bar");
}
});
这成功地工作。但是当路由开始时,会抛出一个异常说org.apache.camel.NoSuchBeanException: No bean could be found in the registry for: direct:bar
。
为什么?
可能是骆驼不支持编织里面分叉?
注意:使用以下 XML 一切正常:
<beans>
<camelContext>
<route>
<from uri="direct:dummy"/>
<to uri="direct:bar"/>
</route>
<route>
<from uri="direct:foo"/>
<split parallelProcessing="true">
<simple>${body}</simple>
<to uri="direct:dummy"/>
</split>
</route>
</camelContext>
</beans>