2016-04-04 2 views
1

Es funktionierte gut früher, aber jetzt sind die gleichen docs Ich folgte ein weiteres geruhsamen Dienst als POST-Methode zu senden und es wirft den unten FehlerAusgabe während POST geruhsamen Serviceanfrage in WSO2 API1.7

ERROR - SequenceMediator Error while building message 
org.apache.axis2.AxisFault: Error while building Passthrough stream 
    at org.apache.synapse.transport.passthru.util.RelayUtils.handleException(RelayUtils.java:236) 
    at org.apache.synapse.transport.passthru.util.RelayUtils.builldMessage(RelayUtils.java:111) 
    at org.apache.synapse.transport.passthru.util.RelayUtils.buildMessage(RelayUtils.java:82) 
    at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:68) 
    at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:47) 
    at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:131) 
    at org.wso2.carbon.apimgt.gateway.handlers.ext.APIManagerExtensionHandler.mediate(APIManagerExtensionHandler.java:64) 
    at org.wso2.carbon.apimgt.gateway.handlers.ext.APIManagerExtensionHandler.handleRequest(APIManagerExtensionHandler.java:180) 
    at org.apache.synapse.rest.API.process(API.java:285) 
    at org.apache.synapse.rest.RESTRequestHandler.dispatchToAPI(RESTRequestHandler.java:83) 
    at org.apache.synapse.rest.RESTRequestHandler.process(RESTRequestHandler.java:64) 
    at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:220) 
    at org.apache.synapse.core.axis2.SynapseMessageReceiver.receive(SynapseMessageReceiver.java:83) 
    at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180) 
    at org.apache.synapse.transport.passthru.ServerWorker.processNonEntityEnclosingRESTHandler(ServerWorker.java:344) 
    at org.apache.synapse.transport.passthru.ServerWorker.processEntityEnclosingRequest(ServerWorker.java:385) 
    at org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:183) 
    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: org.apache.axis2.AxisFault: Failed to convert JSON to XML payload. Expected a ',' or '}' at character 26 of { "xmlPayload" : username=sm&password=sm10&versions=1&regid=1&deviceType=1} 
    at org.apache.axis2.json.JSONBuilder.processDocument(JSONBuilder.java:87) 
    at org.apache.synapse.transport.passthru.util.DeferredMessageBuilder.getDocument(DeferredMessageBuilder.java:118) 
    at org.apache.synapse.transport.passthru.util.RelayUtils.builldMessage(RelayUtils.java:107) 
    ... 19 more 
[2016-04-04 11:35:45,158] INFO - LogMediator STATUS = Executing default 'fault' sequence, ERROR_CODE = 0, ERROR_MESSAGE = Error while building message 

Antwort

0

Diese ist ein bekanntes Problem in APIM 1.7, wo es ein zusätzliches Element xmlPayload für mehrfach verwurzelte JSON-Nachrichten hinzufügt. Dies liegt an einem Fehler in der Jettison-Bibliothek, der in APIM 1.7 der Standard-json-Nachrichtenparser ist. Sie können diesen Fehler beheben, indem Sie den Nachrichtengenerator und den Formatierer ändern, indem Sie die Datei axis2.xml wie folgt ändern:

Fügen Sie die folgenden Builder und Formatierer in axis2.xml in APIM 1.7 für application/json Typen (kommentieren Sie die bestehende Nachricht Builder und Formatierer für "application/json" type out)

<messageFormatter contentType="application/json" 
        class="org.apache.synapse.commons.json.JsonStreamFormatter"/> 


<messageBuilder contentType="application/json" 
       class="org.apache.synapse.commons.json.JsonStreamBuilder"/> 
+0

ich die obigen Änderungen vorgenommen und ich jetzt bekommen Dieser Fehler 'HTTP Status 400 - Erforderlicher String-Parameter 'Benutzername' ist nicht vorhanden ' – user1662039

+0

Haben Sie die vorhandenen Einträge' messageFormatter' und' messageBuilder' in dieser Datei auskommentiert? –

+0

Ja. ' \t \t ' – user1662039