camel:when header 值使用蓝图

camel:when on header value using blueprint

我有基于 header 值进行休息呼叫的骆驼路线。 我一直在使用 xpath 从 xml 读取值并将它们设置为 header 并在块中使用 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 header 的值以限制 <camel:doTry> 和以下执行的时间?

尝试 simple 语言:

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

this documentation