2013-11-12 2 views
2

У меня возникла проблема с моим кодом с использованием посредника фильтра и функций XPATH. То, что я пытаюсь сделать в своем коде, - проверить, не является ли конкретный блок пустым, не вызывать/обогащать этот блок и переходить на другой, если он пуст, если он не обрабатывает его и не переходит к следующему и в end сделать фиксацию. В настоящее время я получаю сообщение об ошибке, как:Фильтр-посредник по функциям XPATH

оценки FilterMediator Ошибка выражения XPath: сноска: существует ($ тела/продукта/simpleProduct/standardAttributes)

My code is as follows: 
<inSequence> 
     <log level="custom"> 
      <property name="STATUS" value="************ REQUEST ***************"/> 
     </log> 
     <transaction action="new"/> 
     <filter xpath="fn:exists($body/product/simpleProduct/standardAttributes)"> 
      </filter>   
     <enrich> 
      <source type="body" clone="true"/> 
      <target type="property" property="MSG_PAYLOAD"/> 
     </enrich> 
     <log level="full"/> 
     <xslt key="simpleAttributes"/> 
     <log level="custom"> 
      <property name="STATUS" 
         value="*********INSERTING Simple Product Attributes *************"/> 
     </log> 

</inSequence> 

Он проваливает Fn: существует(). Можете ли вы помочь мне со своими вкладками, где я ошибаюсь?

ответ

2

По-видимому, функция, которую вы используете, - это функция xpath 2. Функции OOTB xpath 2 не будут работать в ESB. Если это xpath2, вы должны включить его. Чтобы включить xpath 2, для этого uncomment synapse.xpath.dom.failover.enabled = true в файле synapse.properties.

Смежные вопросы