春に次の 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>