Вызов API отдыха (post-метода) с помощью wso2 ESB 4.9.0 отправить обратно неожиданный символ "d" (код 100) после "<!" (некорректный комментарий?) ошибка в качестве ответа
У меня проблема с вызовом Restful API по WSO2 ESB 4.9.0. Я работаю над интеграцией с HPtrim API, публикуя новую запись в этом API. Тип аутентификации - NTLM, и я использую собственный посредник для его обработки. Весь процесс включает в себя Аутентификацию, которая отлично работает в Soap UI. Но когда я пытаюсь отправить сообщение WSO2, я получаю эту ошибку обратно:
ERROR_MESSAGE = com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character 'd' (code 100) after '<!' (malformed comment?) at [row,col {unknown-source}]: [1,3], ERROR_DETAIL = null, ERROR_EXCEPTION =
и эта ошибка также:
OMException in getSOAPBuilder org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:296) org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.getSOAPEnvelope(StAXSOAPModelBuilder.java:204) org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.(StAXSOAPModelBuilder.java:154) org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.(StAXSOAPModelBuilder.java:140) org.apache.axis2.builder.BuilderUtil.getSOAPBuilder(BuilderUtil.java:659) org.apache.axis2.transport.TransportUtils.createDocumentElement(TransportUtils.java:206) org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:146) org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:109) org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:68) org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:348) org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:445) org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:225) org.apache.axis2.client.OperationClient.execute(OperationClient.java:149) org.wso2.symphony3.ntlm.httpclient.NTLMAuthorisation.mediate(NTLMAuthorisation.java:74) org.apache.synapse.mediators.ext.ClassMediator.mediate(ClassMediator.java:78) org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:81) org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:48) org.apache.synapse.mediators.template.TemplateMediator.mediate(TemplateMediator.java:97) org.apache.synapse.mediators.template.InvokeMediator.mediate(InvokeMediator.java:129) org.apache.synapse.mediators.template.InvokeMediator.mediate(InvokeMediator.java:78) org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:81) org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:48) org.apache.synapse.config.xml.AnonymousListMediator.mediate(AnonymousListMediator.java:30) org.apache.synapse.config.xml.SwitchCase.mediate(SwitchCase.java:66) org.apache.synapse.mediators.filters.SwitchMediator.mediate(SwitchMediator.java:123) org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:81) org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:48) org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:149) org.apache.synapse.rest.Resource.process(Resource.java:306) org.apache.synapse.rest.API.process(API.java:378) org.apache.synapse.rest.RESTRequestHandler.dispatchToAPI(RESTRequestHandler.java:97) org.apache.synapse.rest.RESTRequestHandler.process(RESTRequestHandler.java:65) org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:266) org.apache.synapse.core.axis2.SynapseMessageReceiver.receive(SynapseMessageReceiver.java:83) org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180) org.apache.synapse.transport.passthru.ServerWorker.processNonEntityEnclosingRESTHandler(ServerWorker.java:317) org.apache.synapse.transport.passthru.ServerWorker.processEntityEnclosingRequest(ServerWorker.java:363) org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:142) org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) java.lang.Thread.run(Thread.java:748)
Пользовательский посредник, который я использовал для аутентификации NTLM, работает с другими системами, для которых их веб-сервисы являются Soap. Я не уверен, что проблема связана с этим или нет. потому что, когда я изменяю пароль или имя пользователя, чтобы вводить неправильные данные для входа в систему, я получаю несанкционированную ошибку, которая является другой ошибкой.
Когда я проверил ответное сообщение в SoapUI, ответ начинается с. Мое сообщение об ошибке показало неожиданный символ d после
Я не совсем уверен, что ошибка связана с ответом или пользовательским посредником NTLM с этим API остальных. Пожалуйста, не могли бы вы подсказать мне, как я могу обработать этот тип ответа в wso2? Поскольку я провел два дня на этой ошибке и не мог понять, в чем проблема.
Следующие компоновщики сообщений и форматер включены в моем файле axis2.
<messageFormatters>
<messageFormatter contentType="application/x-www-form-urlencoded"
class="org.apache.synapse.commons.formatters.XFormURLEncodedFormatter"/>
<messageFormatter contentType="multipart/form-data"
class="org.apache.axis2.transport.http.MultipartFormDataFormatter"/>
<messageFormatter contentType="application/xml"
class="org.apache.axis2.transport.http.ApplicationXMLFormatter"/>
<messageFormatter contentType="text/xml"
class="org.apache.axis2.transport.http.SOAPMessageFormatter"/>
<messageFormatter contentType="application/soap+xml" class="org.apache.axis2.transport.http.SOAPMessageFormatter"/>
<messageFormatter contentType="text/plain"
class="org.apache.axis2.format.PlainTextFormatter"/>
<messageFormatter contentType="application/json"
class="org.apache.synapse.commons.json.JsonFormatter"/>
<messageFormatter contentType="text/javascript"
class="org.apache.synapse.commons.json.JsonFormatter"/>
<messageFormatter contentType="application/octet-stream" class="org.wso2.carbon.relay.ExpandingMessageFormatter"/>
<messageFormatter contentType="multipart/form-data"
class="org.wso2.carbon.relay.ExpandingMessageFormatter"/>
<messageFormatter contentType="text/html"
class="org.wso2.carbon.relay.ExpandingMessageFormatter"/>
</messageFormatters>
и включены построитель сообщений:
<messageBuilders>
<messageBuilder contentType="application/xml"
class="org.apache.axis2.builder.ApplicationXMLBuilder"/>
<messageBuilder contentType="application/x-www-form-urlencoded"
class="org.apache.synapse.commons.builders.XFormURLEncodedBuilder"/>
<messageBuilder contentType="multipart/form-data"
class="org.apache.axis2.builder.MultipartFormDataBuilder"/>
<messageBuilder contentType="text/plain"
class="org.apache.axis2.format.PlainTextBuilder"/>
<messageBuilder contentType="text/html"
class="org.wso2.carbon.relay.BinaryRelayBuilder"/>
<messageBuilder contentType="application/json"
class="org.apache.synapse.commons.json.JsonBuilder"/>
<messageBuilder contentType="text/javascript"
class="org.apache.synapse.commons.json.JsonBuilder"/>
<messageBuilder contentType="application/octet-stream" class="org.wso2.carbon.relay.BinaryRelayBuilder"/>
messageBuilder contentType=".*"
class="org.wso2.carbon.relay.BinaryRelayBuilder"/>
<messageBuilder contentType="multipart/form-data"
class="org.wso2.carbon.relay.BinaryRelayBuilder"/>