Apache camel 设置seda的队列大小适用于;至;但不是为了;toD";

Apache camel 设置seda的队列大小适用于;至;但不是为了;toD";,apache-camel,jbossfuse,Apache Camel,Jbossfuse,我在spring boot上使用jboss fuse/camel 2.11,一个静态uri为“to”的seda组件与seda的队列大小设置一起工作,下面是示例: camel-context1.xml: <to id="_toPreProcessor" uri="vm:request-preprocessor?size={{rest.queueSize}}"/> 我想知道为什么为seda配置大小时使用“to”而不是“toD”。不确定它是否有效,但您可以尝试在中间标头中构建完整的目标u

我在spring boot上使用jboss fuse/camel 2.11,一个静态uri为“to”的seda组件与seda的队列大小设置一起工作,下面是示例:

camel-context1.xml:

<to id="_toPreProcessor" uri="vm:request-preprocessor?size={{rest.queueSize}}"/>

我想知道为什么为seda配置大小时使用“to”而不是“toD”。

不确定它是否有效,但您可以尝试在中间标头中构建完整的目标uri,然后将此标头用作toD uri中的唯一标记:

<setHeader headerName="myDynamicUri">
  <simple>vm:request-preprocessor?size={{rest.queueSize}}</simple>
</setHeader>
<log message="Dynamic URI: ${header.myDynamicUri}" loggingLevel="DEBUG"/>
<toD uri="${header.myDynamicUri}"/>

vm:请求预处理器?大小={{rest.queueSize}

此问题已通过使用fuse7.0解决

<toD id="_toPreProcessor" uri="vm:request-preprocessor?size={{rest.queueSize}}"/>
org.apache.camel.ResolveEndpointFailedException: Failed to resolve endpoint: vm://request-preprocessor?size=2 due to: Cannot use existing queue vm://request-preprocessor as the existing queue size 2147483647 does not match given queue size 2
<setHeader headerName="myDynamicUri">
  <simple>vm:request-preprocessor?size={{rest.queueSize}}</simple>
</setHeader>
<log message="Dynamic URI: ${header.myDynamicUri}" loggingLevel="DEBUG"/>
<toD uri="${header.myDynamicUri}"/>