Преобразование XQuery с WSO2 ESB - PullRequest
0 голосов
/ 19 марта 2012

Я разрабатываю последовательность прокси-службы, которая включает преобразование XQuery. У меня проблема со ссылкой на файл реестра, содержащий преобразование.

Вот последовательность:

<sequence name="MySequence" xmlns="http://ws.apache.org/ns/synapse" >
  <xquery key="conf:/wsdl/xqueryRequest.xq"
          target="..."
          xmlns:ns="http://org.apache.synapse/xsd"  >
     <variable xmlns:ns2="http://..." name="var1" expression="..." type="ELEMENT" />
  </xquery>
  <send>
     <endpoint>...</endpoint>
  </send>
</sequence>

Файл, содержащий преобразование XQuery, загружен в

/_system/config/wsdl/xqueryRequest.xq

И это исключение, которое я получаю:

WARN ERROR_DETAIL : org.apache.synapse.SynapseException: 
Unable to execute the query at 
org.apache.synapse.mediators.xquery.XQueryMediator.handleException(XQueryMediator.java:627) at
org.apache.synapse.mediators.xquery.XQueryMediator.mediate(XQueryMediator.java:130) at
org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:60) at
...
Caused by: java.lang.NullPointerException at
org.wso2.carbon.mediation.registry.WSO2Registry.lookup(WSO2Registry.java:177) at 
org.apache.synapse.registry.AbstractRegistry.getResource(AbstractRegistry.java:63) at
org.apache.synapse.config.SynapseConfiguration.getEntry(SynapseConfiguration.java:693) at
org.apache.synapse.core.axis2.Axis2MessageContext.getEntry(Axis2MessageContext.java:194) at
org.apache.synapse.mediators.xquery.XQueryMediator.performQuery(XQueryMediator.java:233) at 
org.apache.synapse.mediators.xquery.XQueryMediator.mediate(XQueryMediator.java:123) 
... 11 more 

Исключение показывает NullPointer в WSO2Registry.lookup, поэтому я предполагаю, что проблема заключается в поиске файла XQuery в реестре, эта часть:

key="conf:/wsdl/xqueryRequest.xq"

В документации приведены два фрагмента кода ( 390 и 391 ) с преобразованием XQuery, но ни один из них не объясняет, как ссылаться на файл XQuery.

Вопрос : Каким должно быть правильное значение для ключевого параметра? Нужно ли использовать функцию «Локальный вход»? Если да, то я должен определить значение как «Встроенная запись XML» или «Встроенный текст»?

ОБНОВЛЕНИЕ 23.03.12:

Вопрос 2 : Возможно, более простой вопрос: куда мне скопировать / загрузить файл xqueryRequest.xq, когда я установил для ключевого поля посредника Xquery значение key = "xqueryRequest.xq" ?

1 Ответ

1 голос
/ 22 марта 2012

Можете ли вы попытаться сохранить свой xquery как локальную запись и сослаться на нее из посредника XQuery.(Пожалуйста, ознакомьтесь с местными примерами входа)

...