Ошибка при вызове rest API из WSO2 ESB

Я пытаюсь вызвать сторонний API отдыха из WSO2 ESB 4.9 с помощью Basic authentication type. Я пробовал с разными свойствами и авторизацией в заголовке. Есть ли какая-либо конфигурация, которую мне нужно включить в WSO2 ESB? Может кто-нибудь мне помочь? Я получаю ошибку ниже:

TID: [-1234] [] [2016-03-20 20:44:37,746] ERROR {org.apache.synapse.mediators.base.SequenceMediator} -  Error while building message {org.apache.synapse.mediators.base.SequenceMediator}
org.apache.axis2.AxisFault: Error while building Passthrough stream
    at org.apache.synapse.transport.passthru.util.RelayUtils.handleException(RelayUtils.java:283)
    at org.apache.synapse.transport.passthru.util.RelayUtils.builldMessage(RelayUtils.java:142)
    at org.apache.synapse.transport.passthru.util.RelayUtils.buildMessage(RelayUtils.java:98)
    at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:72)
    at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:261)
    at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.mediateFromContinuationStateStack(Axis2SynapseEnvironment.java:679)
    at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:244)
    at org.apache.synapse.core.axis2.SynapseCallbackReceiver.handleMessage(SynapseCallbackReceiver.java:529)
    at org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive(SynapseCallbackReceiver.java:172)
    at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
    at org.apache.synapse.transport.passthru.ClientWorker.run(ClientWorker.java:247)
    at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:744)
Caused by: org.apache.axiom.om.OMException: com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character 'N' (code 78) in prolog; expected '<'
 at [row,col {unknown-source}]: [1,1]
    at org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:296)
    at org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.getSOAPEnvelope(StAXSOAPModelBuilder.java:204)
    at org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.<init>(StAXSOAPModelBuilder.java:154)
    at org.apache.axiom.om.impl.AbstractOMMetaFactory.createStAXSOAPModelBuilder(AbstractOMMetaFactory.java:73)
    at org.apache.axiom.om.impl.AbstractOMMetaFactory.createSOAPModelBuilder(AbstractOMMetaFactory.java:79)
    at org.apache.axiom.om.OMXMLBuilderFactory.createSOAPModelBuilder(OMXMLBuilderFactory.java:196)
    at org.apache.axis2.builder.SOAPBuilder.processDocument(SOAPBuilder.java:65)
    at org.apache.synapse.transport.passthru.util.DeferredMessageBuilder.getDocument(DeferredMessageBuilder.java:158)
    at org.apache.synapse.transport.passthru.util.RelayUtils.builldMessage(RelayUtils.java:133)
    ... 13 more
Caused by: com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character 'N' (code 78) in prolog; expected '<'
 at [row,col {unknown-source}]: [1,1]
    at com.ctc.wstx.sr.StreamScanner.throwUnexpectedChar(StreamScanner.java:639)
    at com.ctc.wstx.sr.BasicStreamReader.nextFromProlog(BasicStreamReader.java:2052)
    at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1134)
    at org.apache.axiom.util.stax.wrapper.XMLStreamReaderWrapper.next(XMLStreamReaderWrapper.java:225)
    at org.apache.axiom.util.stax.dialect.DisallowDoctypeDeclStreamReaderWrapper.next(DisallowDoctypeDeclStreamReaderWrapper.java:34)
    at org.apache.axiom.om.impl.builder.StAXOMBuilder.parserNext(StAXOMBuilder.java:681)
    at org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:214)
    ... 21 more

С SOAP UI все работает нормально.

Мой прокси-код:

<proxy xmlns="http://ws.apache.org/ns/synapse"
       name="TestSecureAPI"
       transports="http"
       statistics="disable"
       trace="disable"
       startOnLoad="true">
   <target>
      <inSequence>
         <log separator="==== Before Call ===="/>
         <property name="Authorization"
                   value="Basic API Encoded UserName/Password"
                   scope="transport"
                   type="STRING"/>
         <header name="Accept" scope="transport" value="application/json"/>
         <property name="Content-Type"
                   value="application/json"
                   scope="default"
                   type="STRING"/>
         <property name="x-tenant-domain"
                   value="test.nl"
                   scope="transport"
                   type="STRING"/>
         <call>
            <endpoint>
               <http method="GET"
                     uri-template="http://myapi.com/rest/iam/portalusers/search/hordine"/>
            </endpoint>
         </call>
         <log level="full" separator="==== After Call ===="/>
      </inSequence>
   </target>
   <description/>
</proxy>

person Waqas Ali Razzaq    schedule 20.03.2016    source источник


Ответы (1)


у вас есть недопустимое свойство, определенное в прокси

проверьте свойство ниже

 <property name="Authorization"
               value="Basic "API Encoded UserName/Password"
               scope="transport"
               type="STRING"/>

Недопустимое свойство, удалите " войдите в систему ("Basic "API EncodedUserName/Password") и попробуйте сохранить прокси.

person Isuru Jayakantha    schedule 07.04.2016
comment
Я уже решил эту проблему. Кстати, эта двойная кавычка была просто опечаткой при публикации вопроса. Спасибо за наблюдение. - person Waqas Ali Razzaq; 07.04.2016
comment
Привет, у меня похожая проблема в моем случае. Не могли бы вы опубликовать решение. - person Tejas Chinthakindi; 21.01.2020