我有一个用于处理传入文件的camel路由。到目前为止,它是这样的:
<camel:route id="myResultsFileRoute">
<camel:from uri="ref:myResultsFileEndpoint"/>
<camel:process ref="myResultsFileProcessor"/>
<camel:to uri="direct:myResultsCommonRoute"/>
<camel:onException>
<camel:exception>java.lang.Exception</camel:exception>
<camel:redeliveryPolicy maximumRedeliveries="5" redeliveryDelay="30000"/>
</camel:onException>
</camel:route>
正如您在上面看到的,我使用的是myResultsFileProcessor
。我有一个类似下面定义的bean:
<bean id="myResultsFileProcessor"
class="com.mypackage.processes.file.host.myResults.MyResultsFileInitialProcessor">
<constructor-arg name="myResultToEventAssembler" ref="myResultToEventAssembler"/>
<constructor-arg name="myResultsNamespace" value="$res{schema.uri.myResults}"/>
</bean>
传入的xml文件中有一个描述其类型的节点。到目前为止,不管是什么类型的文件,我一直在使用myResultsFileProcessor
,但是现在我引入了另一种类型的传入文件后,我需要为它引入新的文件处理器。所以我创建了新的bean:
<bean id="myOtherResultsFileProcessor"
class="com.mypackage.processes.file.host.myResults.MyOtherFileInitialProcessor">
<constructor-arg name="myResultToEventAssembler" ref="myOtherResultToEventAssembler"/>
<constructor-arg name="myResultsNamespace" value="$res{schema.uri.myResults}"/>
</bean>
您能否告诉我如何修改我的驼峰路径,使其根据文件中的字段选择myResultsFileProcessor
或myOtherResultsFileProcessor
发布于 2020-02-23 15:53:49
您可以选择弹性公网EIP https://camel.apache.org/manual/latest/choice-eip.html
<choice>
<when>
<xpath>/node/type = 'file_type'</xpath>
<process ref="myResultsFileProcessor"/>
</when>
<when>
<xpath>/node/type = 'other_file_type'</xpath>
<process ref="myOtherResultsFileProcessor"/>
</when>
</choice>
https://stackoverflow.com/questions/60363213
复制相似问题