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

Reply via email to