使用WSO2DSS 3.5.1,我们有嵌套查询返回分页信息和项目的子列表。带有JSON响应的WSO2DSS嵌套查询
对于XML,它看起来一切很简单:
<result element="results" rowName="result" >
<element column="pagecount" name="pageCount" xsdType="integer"/>
<element column="resultcount" name="resultCount" xsdType="integer"/>
<element column="currpage" name="page" xsdType="integer"/>
<call-query href="positions_list">
<with-param name="page" query-param="page"/>
</call-query>
</result>
我们如何使用嵌套查询(查询电话)与JSON响应?当请求“接受:应用/ JSON的”头,我们收到的StackOverflow错误
java.lang.StackOverflowError
at javax.xml.namespace.QName.equals(Unknown Source)
at java.util.HashMap.getNode(HashMap.java:571)
at java.util.HashMap.get(HashMap.java:556)
at org.apache.ws.commons.schema.XmlSchemaObjectTable.getItem(XmlSchemaObjectTable.java:50)
at org.apache.ws.commons.schema.XmlSchema.getTypeByName(XmlSchema.java:296)
at org.apache.ws.commons.schema.XmlSchema.getTypeByName(XmlSchema.java:346)
at org.apache.axis2.json.gson.factory.XmlNodeGenerator.getSchemaTypeOfElement(XmlNodeGenerator.java:146)
at org.apache.axis2.json.gson.factory.XmlNodeGenerator.processElement(XmlNodeGenerator.java:136)
at org.apache.axis2.json.gson.factory.XmlNodeGenerator.processSchemaType(XmlNodeGenerator.java:166)
at org.apache.axis2.json.gson.factory.XmlNodeGenerator.processElement(XmlNodeGenerator.java:112)
at org.apache.axis2.json.gson.factory.XmlNodeGenerator.processSchemaType(XmlNodeGenerator.java:166)
at org.apache.axis2.json.gson.factory.XmlNodeGenerator.processElement(XmlNodeGenerator.java:137)
到目前为止,我们发现,要求与嵌套查询JSON回应时,它的发生。
要返回JSON响应看起来简单(和非常简单的转换为XML)
<result outputType="json">
{"UserPositionListPage": {
{ "pageCount": $pagecount,
"resultCount": $resultcount,
"page": $currpage
} }
</result>
但是我们认为没有办法,包括从嵌套调用响应。任何建议/想法?
编辑:似乎我必须在可重复的情况下工作,因为我们已经有一个服务返回XML嵌套调用,并且它在请求json时有效:/我不介意服务总是会返回JSON或XML,无论请求内容类型(假设我们可以使用ESB或APIM用于转化的)