2016-04-27 19 views
0

我使用全局外发日志中介以在调用Web服务时获取完整的日志消息。 当客户端使用SOAP Web服务时,所有事情都是按顺序进行的。 当客户端调用REST Web服务时,发生异常,并且响应是运行时错误。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中定义的消息构建器完成。根据有效载荷的内容类型,将选择正确的messagebuilder。

在您的连线日志中,网关通过content-type -application/json从后端获取负载。但有效载荷(“你好,我”)不是实际的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""**