camel:使用蓝图时使用标头值

时间:2016-02-15 21:54:08

标签: xpath apache-camel jsonpath blueprint-osgi

我有基于标头值进行休息调用的驼峰路由。 我一直在使用xpath从xml读取值并将它们设置为标题并在块中使用xpath,如下所示:

 <camel:setHeader headerName="clear">
    <xpath>/TicketInfo/TicketData/Clear/text()</xpath>
 </camel:setHeader>
    <camel:choice>
       <camel:when>
          <camel:xpath>$clear='CLEARED'</camel:xpath>
          <camel:doTry>
              ...

但现在我被迫使用json,所以xpath将无法正常工作。我现在有:

<camel:setHeader headerName="clear">
   <camel:jsonpath>$.ticket.Type</camel:jsonpath>
</camel:setHeader>
   <camel:choice>
      <camel:when>
         <camel:xpath>$clear='CLEARED'</camel:xpath>
         <camel:doTry>
            ...

但显然<camel:xpath>$clear='CLEARED'</camel:xpath>部分将不再起作用。还有另一种方法可以检查$ clear标头的值,以便在<camel:doTry>和后续执行时进行限制吗?

1 个答案:

答案 0 :(得分:1)

试用simple语言:

<camel:when>
     <camel:simple>${in.header.clear} == 'CLEARED'</camel:simple>
     <camel:doTry>

请参阅this documentation