2017-02-15 11 views
0

Я пытаюсь использовать параметр ниже, и я получаю ошибку, может ли кто-нибудь предложить мне решение. Я добавил synapse.xpath.dom.failover.enabled = истинный код: пытается заменить ~ лексема ~ с значением свойствазамените функцию get-property в wso2esb

<property name="verificationLink" expression="fn:replace($ctx:reqVerifyUrl , '~TOKEN~', get-property('verification_code'))" scope="default" type="STRING" xmlns:fn="http://www.w3.org/2005/xpath-functions" /> 

Ошибка:

TID: [-1234] [] [2017-02-15 00:14:19,318] ERROR {org.apache.synapse.util.xpath.SynapseXPath} - Evaluation of the XPath expression fn:replace($ctx:reqVerifyUrl , '~TOKEN~', get-property('verification_code')) resulted in an error {org.apache.synapse.util.xpath.SynapseXPath} net.sf.saxon.trans.XPathException: Unknown system function get-property() 

ответ

1

получить-свойство не является стандартная функция XPath, и вы должны сказать XPATH двигателя, что эта функция исходит из синапса:

<property name="verificationLink" expression="fn:replace($ctx:reqVerifyUrl , '~TOKEN~', syn:get-property('verification_code'))" scope="default" type="STRING" xmlns:fn="http://www.w3.org/2005/xpath-functions" /> 

Вам не нужно, чтобы добавить т он определение «SYN» пространства имен, он хорошо известен в своем посредничестве (XMLNS: син = «http://ws.apache.org/ns/synapse»)

+0

спасибо jean, его работа – sam

0

Две вещи должны быть сделаны:

A. Просмотрите это и убедитесь, что ваша конфигурация Synapse установлена ​​правильно. Is there any replace function in wso2esb?

B. Затем вам нужно добавить префикс fn & syn, если вам нужно использовать методы get-property() с XPath 2.0. Также обратите внимание: вы должны использовать (включать) следующие значения пространств имен для «syn» и «fn».

xmlns:syn=”http://ws.apache.org/commons/ns/payload” 
xmlns:fn=”http://www.w3.org/2005/xpath-functions” 

Здесь приведен пример медиа-посредника с использованием замены.

<property xmlns:syn="http://ws.apache.org/commons/ns/payload" xmlns:fn="http://www.w3.org/2005/xpath-functions" name="xmlValue" expression="fn:replace(syn:get-property('textValue'), 'xmlData=', '')></property>; 

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

  • Нет связанных вопросов^_^