Hi Alexey, Thanks for the information, the SqlFieldsQuery works fine for me.
But I still want to try out the sql query. After uploading the jar file in the $IgniteHome/lib folder, a new exception shows up. The rest response says No serializer found for class Ignite$Test and no properties discovered to create BeanSerializer Any ideas? From: Alexey Kukushkin <[email protected]> Reply-To: "[email protected]" <[email protected]> Date: Wednesday, 13 September 2017 at 17:46 To: "[email protected]" <[email protected]> Subject: Re: Issue when executing sql query using REST API Hi Ray, You can avoid deploying classes to the server nodes by using Ignite API that does not require building POJOs (IgniteTest$Person in your case). * For SQL API use SqlFieldsQuery<https://apacheignite.readme.io/docs/sql-queries#section-sqlfieldsqueries> that, unlike SqlQuery, does not build a full object * For REST API use command "qryfldexe" <https://apacheignite.readme.io/docs/rest-api#sql-fields-query-execute> (that will result in SqlFieldsQuery) * For Java API use IgniteBinary API<https://apacheignite.readme.io/docs/binary-marshaller#binaryobject-cache-api>. Also, Ignite has Zero deployment feature<https://apacheignite.readme.io/docs/zero-deployment> applicable only to the computational code (compute closures and tasks) that enables automated deployment. But as I said it is not applicable to the metadata (cache) classes. On Wed, Sep 13, 2017 at 12:23 PM, Ray Liu (rayliu) <[email protected]<mailto:[email protected]>> wrote: Do I have to deploy my classes on all of the server nodes manually? Every time I added some new classes, I have to do this again? From: Alexey Kukushkin <[email protected]<mailto:[email protected]>> Reply-To: "[email protected]<mailto:[email protected]>" <[email protected]<mailto:[email protected]>> Date: Wednesday, 13 September 2017 at 17:20 To: "[email protected]<mailto:[email protected]>" <[email protected]<mailto:[email protected]>> Subject: Re: Issue when executing sql query using REST API Ray, I am sorry - just read your second email and I realised I originally misunderstood your question. You guessed right, your classes need to be deployed on the server nodes and on the server nodes you need to set the USER_LIBS environment variable like: export USER_LIBS=<path to your IgniteTest JAR>/<your IgniteTest>.jar On Wed, Sep 13, 2017 at 12:15 PM, Ray Liu (rayliu) <[email protected]<mailto:[email protected]>> wrote: Can you share your configuration xml? I think it’s a binary masharller configuration issue. From: Alexey Kukushkin <[email protected]<mailto:[email protected]>> Reply-To: "[email protected]<mailto:[email protected]>" <[email protected]<mailto:[email protected]>> Date: Wednesday, 13 September 2017 at 17:12 To: "[email protected]<mailto:[email protected]>" <[email protected]<mailto:[email protected]>> Subject: Re: Issue when executing sql query using REST API Hi Ray, Just copied your code into a simple single file sample project, ran it and your query worked fine for me: 1. Request URL: http://127.0.0.1:8080/ignite?cacheName=person&pageSize=1&qry=limit+2&cmd=qryexe&type=Person& 2. Request Method: GET 3. Status Code: 200 OK 4. --------------------- 5. {"successStatus":0,"error":null,"response":{"items":[{"key":0,"value":{"id":0,"firstName":"John","lastName":"Doe","salary":2000.0,"organizationId":1}}],"last":false,"fieldsMetadata":[],"queryId":2},"sessionToken":null} -- Best regards, Alexey -- Best regards, Alexey
