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