首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何根据传入文件中的字段选择camel:process ref的值?

如何根据传入文件中的字段选择camel:process ref的值?
EN

Stack Overflow用户
提问于 2020-02-23 14:29:24
回答 1查看 107关注 0票数 0

我有一个用于处理传入文件的camel路由。到目前为止,它是这样的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<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:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<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:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<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>

您能否告诉我如何修改我的驼峰路径,使其根据文件中的字段选择myResultsFileProcessormyOtherResultsFileProcessor

EN

回答 1

Stack Overflow用户

发布于 2020-02-23 15:53:49

您可以选择弹性公网EIP https://camel.apache.org/manual/latest/choice-eip.html

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<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>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60363213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文