2016-04-27 3 views
0

Я использую глобальный исходящий логический посредник, чтобы получить полное сообщение о регистрации при вызове веб-службы. Когда клиент использует веб-службу SOAP, все в порядке. Когда клиент вызывает веб-службу REST, возникает исключение, а ответ - ошибка времени выполнения.Исключение журнала посредника WSO2AM в службе отдыха

Есть ли что-то, что я могу сделать с этим, кроме создания посредника за услугу, а не глобального?

это определение медиатор

<sequence xmlns="http://ws.apache.org/ns/synapse" name="WSO2AM--Ext--Out"> 
<log level="full"> 
    <property name="ParentID:" expression="get-property('parentID')"/> 
    <property name="ActualRemoteAddress:" expression="get-property('client')"/> 
    <property name="AuthHeader:" expression="get-property('AuthHeader')"/> 
</log> 

И это начало, за исключением

ERROR - RelayUtils Error while building Passthrough stream 
org.apache.axiom.om.OMException: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,11] 
Message: Not in an object 
    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.commons.json.JsonUtil.toXml(JsonUtil.java:278) 
    at org.apache.synapse.commons.json.JsonBuilder.processDocument(JsonBuilder.java:35) 
    at org.apache.synapse.transport.passthru.util.DeferredMessageBuilder.getDocument(DeferredMessageBuilder.java:138) 
    at org.apache.synapse.transport.passthru.util.RelayUtils.builldMessage(RelayUtils.java:135) 
    at org.apache.synapse.transport.passthru.util.RelayUtils.buildMessage(RelayUtils.java:100) 
    at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:72) 
    at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:48) 
    at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:155) 
    at org.wso2.carbon.apimgt.gateway.handlers.ext.APIManagerExtensionHandler.mediate(APIManagerExtensionHandler.java:56) 
    at org.wso2.carbon.apimgt.gateway.handlers.ext.APIManagerExtensionHandler.handleResponse(APIManagerExtensionHandler.java:85) 
    at org.apache.synapse.rest.API.process(API.java:320) 
    at org.apache.synapse.rest.RESTRequestHandler.dispatchToAPI(RESTRequestHandler.java:86) 
    at org.apache.synapse.rest.RESTRequestHandler.process(RESTRequestHandler.java:52) 
    at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:295) 
    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:251) 
    at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 
Caused by: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,11] 
Message: Not in an object 
    at org.apache.synapse.commons.staxon.core.base.AbstractXMLStreamReader.hasNext(AbstractXMLStreamReader.java:449) 
    at org.apache.synapse.commons.staxon.core.base.AbstractXMLStreamReader.next(AbstractXMLStreamReader.java:456) 
    at javax.xml.stream.util.StreamReaderDelegate.next(StreamReaderDelegate.java:88) 
    at org.apache.axiom.om.impl.builder.StAXOMBuilder.parserNext(StAXOMBuilder.java:681) 
    at org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:214) 
    ... 25 more 
+0

Можете ли вы активировать проводные журналы и обновить свой вопрос новыми журналами? –

+0

Это вывод с включенным журналом провод и заголовки https://www.dropbox.com/s/r7oeodwjawhehwu/wire.log – Spiros

+0

При вызове службы с использованием клиента-клиента ошибка возникает из-за этой строки: [ 2016-05-09 16: 49: 56,437] DEBUG-wire >> «« Привет, я »« вы не отправляете объект xml, просто текст ... пытайтесь зафиксировать то же самое, когда вы используете soapclient для сравнить оба сообщения –

ответ

0

При использовании контента осведомленный медиатор (например logmediator) шлюз будет строить полезная нагрузка в формат мыла. Это делается сборщиками сообщений, определенными в файле axis2.xml. В зависимости от типа содержимого полезной нагрузки будет выбран правильный сборщик сообщений.

В проводном журнале шлюз получает полезную нагрузку из бэкэнд с использованием типа-приложения/json. Но полезная нагрузка («Hello, me») не находится в реальном формате json. Поэтому строитель, связанный с этим, не может разобрать полезную нагрузку

[2016-05-09 16:49:56,433] DEBUG - wire >> "HTTP/1.1 200 OK[\r][\n]" 
[2016-05-09 16:49:56,433] DEBUG - wire >> "Date: Mon, 09 May 2016 13:48:10 GMT[\r][\n]" 
[2016-05-09 16:49:56,433] DEBUG - wire >> "Server: Apache/2.4.7 (Ubuntu)[\r][\n]" 
[2016-05-09 16:49:56,433] DEBUG - wire >> "X-Powered-By: PHP/5.5.9-1ubuntu4.16[\r][\n]" 
[2016-05-09 16:49:56,435] DEBUG - wire >> "Content-Length: 11[\r][\n]" 
[2016-05-09 16:49:56,435] DEBUG - wire >> "Keep-Alive: timeout=5, max=100[\r][\n]" 
[2016-05-09 16:49:56,435] DEBUG - wire >> "Connection: Keep-Alive[\r][\n]" 
[2016-05-09 16:49:56,435] DEBUG - wire >> **"Content-Type: application/json**[\r][\n]" 
[2016-05-09 16:49:56,435] DEBUG - wire >> "[\r][\n]" 
[2016-05-09 16:49:56,437] DEBUG - wire >> **""Hello, me""** 
Смежные вопросы