使用JSONDSS3.5.1,我想找到一种用于插入多条记录的WSO2格式
拥有资源
<resource method="POST" path="/insert/count">
<call-query href="insert_rawdata">
<with-param name="timeslot" query-param="timeslot" />
<with-param name="cell_id" query-param="cell_id" />
</call-query>
</resource>and查询
<query id="insert_rawdata" useConfig="PG_DB">
<sql>INSERT INTO mobile_data ( date_time , timeslot , cell_id )
VALUES (
NOW()::timestamp, :timeslot::timestamp with time zone, :cell_id )
ON CONFLICT (timeslot, cell_id) DO NOTHING </sql>
<param name="timeslot" sqlType="STRING" type="IN"/>
<param name="cell_id" sqlType="INTEGER" type="IN"/>
</query>使用XML发布多条记录非常简单
<test_list>
<data>
<timeslot>2017-11-13 14:00</timeslot>
<cell_id>1234</cell_id>
</data>
<data>
<timeslot>2017-11-13 14:00</timeslot>
<cell_id>1235</cell_id>
</data>
</test_list>阅读文档https://docs.wso2.com/display/DSS351/Using+JSON+Messages+with+RESTful+Services看起来很有用,但是文档似乎并不正确
根据文档,JSON对象应该是_post$RESOURCE,但它是_post_$RESOURCE
工作帖子请求:
{
"_post_insert_count" : {
"timeslot": "2017-11-13 14:00",
"cell_id": 1234
}
} 然而,我无法找到正确的JSON语法/格式来POST (插入)单个请求的多个记录,根据文档应该是
{ "_post_insert_count_batch_req": {
"_post_insert_count": [
{
"timeslot": "2017-11-13 14:00",
"cell_id": 1234
} ,
{
"timeslot": "2017-11-13 14:00",
"cell_id": 1235
}]
} 然后我得到了一个例外
java.lang.NullPointerException
at org.apache.axis2.json.gson.GsonXMLStreamReader.validateArgumentTypes(GsonXMLStreamReader.java:783)
at org.apache.axis2.json.gson.GsonXMLStreamReader.nextValue(GsonXMLStreamReader.java:734)
at org.apache.axis2.json.gson.GsonXMLStreamReader.readValue(GsonXMLStreamReader.java:626)那么,有人可以帮助构建一个有效的JSON请求来插入多条记录吗?
谢谢你的任何提示
发布于 2017-11-25 00:11:28
工作示例:
{
"_post_insert_items_batch_req": {
"_post_insert_items": [{
"timestamp": "2017-11-13 14:00:00",
"school": "Regina Pace",
"eventid": 1234
},
{
"timestamp": "2017-11-13 14:00:00",
"school": "Regina Pace",
"evenid": 1235
}
]
}
}这很奇怪,因为上次我收到了来自类似请求的NPE,所以我真的不知道问题出在哪里
https://stackoverflow.com/questions/47273657
复制相似问题