Hi Bernard,

When you send an HTTP POST request, the format of the JSON object name
should be "_post$RESOURCE_NAME". Since the resource name is inscription*s*,
the correct payload should be {"_postinscription*s*": {"id":
"001122334466"}}

I hope this will be satisfactory to you.

Regards,
Samith

On Wed, Jun 12, 2019 at 2:31 PM Bernard Paris <[email protected]>
wrote:

> Hi devs,
>
> we have this error using DSS of EI.6.4.0.
>
> [2019-06-12 15:17:23,236] [EI-Core] DEBUG - wire HTTP-Listener I/O
> dispatcher-1 >> "POST /services/inscriptions-quid/inscriptions
> HTTP/1.1[\r][\n]"
> [2019-06-12 15:17:23,237] [EI-Core] DEBUG - wire HTTP-Listener I/O
> dispatcher-1 >> "Host: localhost:8280[\r][\n]"
> [2019-06-12 15:17:23,237] [EI-Core] DEBUG - wire HTTP-Listener I/O
> dispatcher-1 >> "User-Agent: curl/7.54.0[\r][\n]"
> [2019-06-12 15:17:23,237] [EI-Core] DEBUG - wire HTTP-Listener I/O
> dispatcher-1 >> "Accept: */*[\r][\n]"
> [2019-06-12 15:17:23,237] [EI-Core] DEBUG - wire HTTP-Listener I/O
> dispatcher-1 >> "Content-Type: application/json[\r][\n]"
> [2019-06-12 15:17:23,237] [EI-Core] DEBUG - wire HTTP-Listener I/O
> dispatcher-1 >> "Content-Length: 46[\r][\n]"
> [2019-06-12 15:17:23,237] [EI-Core] DEBUG - wire HTTP-Listener I/O
> dispatcher-1 >> "[\r][\n]"
> [2019-06-12 15:17:23,238] [EI-Core] DEBUG - wire HTTP-Listener I/O
> dispatcher-1 >> "{"_postinscription": {"id": "001122334466"}}"
> [2019-06-12 15:17:23,271] [EI-Core] ERROR - GsonXMLStreamReader Value type
> miss match, Expected value type - 'null', but found - 'STRING'
> [2019-06-12 15:17:23,273] [EI-Core] ERROR - ServerWorker Error processing
> POST request for : /services/inscriptions-quid/inscriptions. Error detail:
> Value type miss match, Expected value type - 'null', but found - 'STRING'.
> java.lang.IllegalArgumentException: Value type miss match, Expected value
> type - 'null', but found - 'STRING'
> at
> org.apache.axis2.json.gson.GsonXMLStreamReader.nextValue(GsonXMLStreamReader.java:739)
> at
> org.apache.axis2.json.gson.GsonXMLStreamReader.readValue(GsonXMLStreamReader.java:626)
> at
> org.apache.axis2.json.gson.GsonXMLStreamReader.stateTransition(GsonXMLStreamReader.java:532)
> at
> org.apache.axis2.json.gson.GsonXMLStreamReader.next(GsonXMLStreamReader.java:178)
> at
> org.apache.axiom.om.impl.builder.StAXOMBuilder.parserNext(StAXOMBuilder.java:681)
> at
> org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:214)
> at
> org.apache.axiom.om.impl.llom.OMSerializableImpl.build(OMSerializableImpl.java:78)
> at
> org.apache.axiom.om.impl.llom.OMElementImpl.build(OMElementImpl.java:722)
> at
> org.apache.axiom.om.impl.llom.OMElementImpl.detach(OMElementImpl.java:700)
> at org.apache.axiom.om.impl.llom.OMNodeImpl.setParent(OMNodeImpl.java:105)
> at
> org.apache.axiom.om.impl.llom.OMElementImpl.addChild(OMElementImpl.java:296)
> at
> org.apache.axiom.om.impl.llom.OMElementImpl.addChild(OMElementImpl.java:212)
> at
> org.apache.axiom.soap.impl.llom.SOAPBodyImpl.addChild(SOAPBodyImpl.java:231)
> at
> org.apache.axis2.json.gson.JSONMessageHandler.invoke(JSONMessageHandler.java:84)
> at org.apache.axis2.engine.Phase.invokeHandler(Phase.java:340)
> at org.apache.axis2.engine.Phase.invoke(Phase.java:313)
> at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:261)
> at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:167)
> at
> org.apache.synapse.transport.passthru.ServerWorker.processNonEntityEnclosingRESTHandler(ServerWorker.java:337)
> at
> org.apache.synapse.transport.passthru.ServerWorker.processEntityEnclosingRequest(ServerWorker.java:383)
> at
> org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:151)
> at
> org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> at java.lang.Thread.run(Thread.java:748)
> [2019-06-12 15:17:23,297] [EI-Core] DEBUG - wire HTTP-Listener I/O
> dispatcher-1 << "HTTP/1.1 500 Internal Server Error[\r][\n]"
>
>
> The POST query was:
>
> $ curl -X POST -H 'Content-Type: application/json' "
> http://localhost:8280/services/inscriptions-quid/inscriptions"; -d
> '{"_postinscription": {"id": "001122334466"}}'
>
>
> And here is the dataservice query definition :
>
>     <query id="create_inscription_query" useConfig="default">
>         <sql>INSERT INTO inscriptions values ( now(), now() ,:id)</sql>
>         <param name="id" sqlType="STRING"/>
>     </query>
>
>
>     <resource method="POST" path="/inscriptions">
>         <call-query href="create_inscription_query" >
>         <with-param name="id" query-param="id"/>
>         </call-query>
>     </resource>
>
>
> Putting this in $EI_HOME/conf/axis2/axis2.xml  solved this problem on my
> own dev environment  but we tested this config change on QA environment and
> see there are lot of side effects for esb services, so we do not want
> changing this file.  What could be done ?
>
>
> <messageFormatter contentType="application/json"
>               
> class="org.apache.axis2.json.JSONMessageFormatter"/><messageBuilder 
> contentType="application/json"
>                 class="org.apache.axis2.json.JSONOMBuilder"/>
>
>
> Bernard
>
>
>
> _______________________________________________
> Dev mailing list
> [email protected]
> http://wso2.org/cgi-bin/mailman/listinfo/dev
>


-- 
Best Regards

Samith Dassanayake | Associate Technical Lead | WSO2 Inc.
(m) +44 7864 963981 | (w) +44 203 696 6510 | (e) [email protected]


<http://wso2.com/signature>
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to