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

Reply via email to