如何使用 WSO2 DSS 在 REST 服务上 return 多于 1 条记录?
How to return more than 1 record on REST service with WSO2 DSS?
我在 MySQL 数据库中使用 WSO2 DSS。如果我只从数据库请求 1 条记录,它可以正常工作。但是当我尝试在 REST 服务中 select 超过 1 个注册表时,它不起作用。错误是:
{
"Fault": {
"faultcode": "soapenv:Server"
"faultstring": "Error while writing to the output stream using JsonWriter"
"detail": ""
}-
}
我的数据服务:
<data name="item" transports="http https local">
<config enableOData="false" id="default">
<property name="carbon_datasource_name">mysql</property>
</config>
<query id="selectActiveItems" useConfig="default">
<sql>SELECT descricao FROM ITEM WHERE ativo = true and id_responsavel = ?</sql>
<result escapeNonPrintableChar="true" outputType="json">{ "_item": { "descricao":$descricao}}</result>
<param name="id_responsavel" ordinal="1" sqlType="INTEGER"/>
</query>
<resource method="POST" path="selectActiveItems">
<call-query href="selectActiveItems">
<with-param name="id_responsavel" query-param="id_responsavel"/>
</call-query>
</resource>
</data>
有什么属性我没有设置的吗?
响应数据库中超过 1 条记录的正确输出是:
<result escapeNonPrintableChar="true" outputType="json">
{"_itens":{"item": [ {"nome":$nome,"descricao":$descricao} ] }}
</result>
我以前见过这个,可以通过更改消息来解决 builders/formatters。
查看我的回答here。
我在 MySQL 数据库中使用 WSO2 DSS。如果我只从数据库请求 1 条记录,它可以正常工作。但是当我尝试在 REST 服务中 select 超过 1 个注册表时,它不起作用。错误是:
{
"Fault": {
"faultcode": "soapenv:Server"
"faultstring": "Error while writing to the output stream using JsonWriter"
"detail": ""
}-
}
我的数据服务:
<data name="item" transports="http https local">
<config enableOData="false" id="default">
<property name="carbon_datasource_name">mysql</property>
</config>
<query id="selectActiveItems" useConfig="default">
<sql>SELECT descricao FROM ITEM WHERE ativo = true and id_responsavel = ?</sql>
<result escapeNonPrintableChar="true" outputType="json">{ "_item": { "descricao":$descricao}}</result>
<param name="id_responsavel" ordinal="1" sqlType="INTEGER"/>
</query>
<resource method="POST" path="selectActiveItems">
<call-query href="selectActiveItems">
<with-param name="id_responsavel" query-param="id_responsavel"/>
</call-query>
</resource>
</data>
有什么属性我没有设置的吗?
响应数据库中超过 1 条记录的正确输出是:
<result escapeNonPrintableChar="true" outputType="json">
{"_itens":{"item": [ {"nome":$nome,"descricao":$descricao} ] }}
</result>
我以前见过这个,可以通过更改消息来解决 builders/formatters。
查看我的回答here。