WSO2 API1.7中发布restful服务请求时出现问题

WSO2 API1.7中发布restful服务请求时出现问题,wso2,wso2-am,Wso2,Wso2 Am,它在早期工作得很好,但现在我使用相同的文档作为POST方法发送另一个restful服务,它抛出以下错误 ERROR - SequenceMediator Error while building message org.apache.axis2.AxisFault: Error while building Passthrough stream at org.apache.synapse.transport.passthru.util.RelayUtils.handleException

它在早期工作得很好,但现在我使用相同的文档作为POST方法发送另一个restful服务,它抛出以下错误

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

这是APIM 1.7中的一个已知问题,它为多根JSON消息添加了一个额外的
xmlPayload
元素。这是由于抛弃库中的一个bug造成的,该库是APIM 1.7中默认的json消息解析器。您可以通过如下修改
axis2.xml
文件来更改消息生成器和格式化程序,从而消除此错误:

在APIM 1.7的
application/json
类型的
axis2.xml
中添加以下生成器和格式化程序(注释掉“application/json”类型的现有消息生成器和格式化程序)


这是APIM 1.7中的一个已知问题,它为多根JSON消息添加了一个额外的
xmlPayload
元素。这是由于抛弃库中的一个bug造成的,该库是APIM 1.7中默认的json消息解析器。您可以通过如下修改
axis2.xml
文件来更改消息生成器和格式化程序,从而消除此错误:

在APIM 1.7的
application/json
类型的
axis2.xml
中添加以下生成器和格式化程序(注释掉“application/json”类型的现有消息生成器和格式化程序)



我进行了上述更改,现在出现了此错误
HTTP状态400-所需字符串参数“username”不存在
您是否已注释掉该文件中现有的
messageFormatter
messageBuilder
条目?是<代码>我们发布了API Manager 1.10。您可以试一试吗?它是否适用于Linux 64位操作系统,因为我在或在上找不到它。我进行了上述更改,现在出现了此错误
HTTP状态400-所需字符串参数“username”不存在
您是否已注释掉其中现有的
messageFormatter
messageBuilder
条目档案?是的<代码>我们发布了API Manager 1.10。你能试试吗?它是否适用于Linux 64位操作系统,因为我在或上找不到它
<messageFormatter contentType="application/json"
                  class="org.apache.synapse.commons.json.JsonStreamFormatter"/>


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