Имя API с вызовом .php от WSO2

Я использую wso2 API Manager 1.7. и нужно опубликовать API, написанный на php. Это конечная точка URL идет с .php также. Но когда я публикую этот API и вызываю его через APIM, он никогда не дает никакого ответа. Я заметил следующее исключение в журнале углерода.
Если я пытаюсь напрямую с URL, API дает правильный ответ.
Это запрос на получение, и я передаю параметры URL.

Можете ли вы помочь мне, как решить эту проблему.

API URL : <host>/api/testApi.php

Журнал ошибок

TID: [0]  [AM]  TID: [0] [AM] [2016-09-06 15:43:22,016] ERROR {org.apache.synapse.transport.passthru.util.RelayUtils} -  Error while building Passthrough stream {org.apache.synapse.transport.passthru.util.RelayUtils}
org.apache.axiom.om.OMException: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,1]
Message: Content is not allowed in prolog.
at org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:296)
at org.apache.axiom.om.impl.llom.OMDocumentImpl.getOMDocumentElement(OMDocumentImpl.java:109)
at org.apache.axiom.om.impl.builder.StAXOMBuilder.getDocumentElement(StAXOMBuilder.java:570)
at org.apache.axiom.om.impl.builder.StAXOMBuilder.getDocumentElement(StAXOMBuilder.java:566)
at org.apache.synapse.transport.passthru.util.DeferredMessageBuilder.getDocument(DeferredMessageBuilder.java:129)
at org.apache.synapse.transport.passthru.util.RelayUtils.builldMessage(RelayUtils.java:107)
at org.apache.synapse.transport.passthru.util.RelayUtils.buildMessage(RelayUtils.java:82)
at org.apache.synapse.transport.passthru.util.RelayUtils.buildMessage(RelayUtils.java:70)
at org.wso2.carbon.apimgt.axiata.dialog.verifier.MifeInternalAPIResponseHandler.handleResponse(MifeInternalAPIResponseHandler.java:59)
at org.apache.synapse.rest.API.process(API.java:282)
at org.apache.synapse.rest.RESTRequestHandler.dispatchToAPI(RESTRequestHandler.java:83)
at org.apache.synapse.rest.RESTRequestHandler.process(RESTRequestHandler.java:51)
at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:220)
at org.apache.synapse.core.axis2.SynapseCallbackReceiver.handleMessage(SynapseCallbackReceiver.java:488)
at org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive(SynapseCallbackReceiver.java:170)
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
at org.apache.synapse.transport.passthru.ClientWorker.run(ClientWorker.java:229)
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:745)
Caused by: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,1]
Message: Content is not allowed in prolog.
at com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.next(XMLStreamReaderImpl.java:598)
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.util.stax.wrapper.XMLStreamReaderWrapper.next(XMLStreamReaderWrapper.java:225)
at org.apache.axiom.util.stax.dialect.SJSXPStreamReaderWrapper.next(SJSXPStreamReaderWrapper.java:138)
at org.apache.axiom.om.impl.builder.StAXOMBuilder.parserNext(StAXOMBuilder.java:681)
at org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:214)
... 20 more

3

Решение

Эта ошибка появляется при построении тела контента. Убедитесь, что вы устанавливаете правильный заголовок типа содержимого и убедитесь, что соответствующий построитель сообщений включен в axis2.xml

0

Другие решения

Я думаю, что лучше, если вы сможете включить проводные журналы, чтобы видеть все сообщения, которые проходят через,
включив проводные журналы, вы можете подтвердить, отправляя вызов API через запрос GET, работает он или нет
Вы можете включить журналы уровня проводов. Он будет регистрировать все сообщения http. сделать это

Пожалуйста, раскомментируйте следующие два свойства в файле «log4j.properties», который можно найти в каталоге APIM HOME / repository / conf

log4j.logger.org.apache.synapse.transport.http.wire=DEBUG
0

По вопросам рекламы [email protected]