ignite-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ANJANEYA PRASAD NIDUBROLU <anjaney...@gmail.com>
Subject Re: REST API response json is empty.
Date Wed, 20 Sep 2017 19:28:07 GMT
Hello Denis,

Many thanks. Its working now and it solved both the problems.

Thanks,
Anji.

On Wed, Sep 20, 2017 at 4:41 PM, Denis Mekhanikov <dmekhanikov@gmail.com>
wrote:

> Hi Anji!
>
> Parameters of constructor of College class are not marked with val
> keyword, so @BeanProperty annotations have no effect.
>
> Adding val keyword before every constructor parameter should solve your
> second problem.
>
> Denis
>
> ср, 20 сент. 2017 г. в 6:37, ANJANEYA PRASAD NIDUBROLU <
> anjaneya4u@gmail.com>:
>
>> Any luck with my query? What am i missing? Why REST response is blank
>> though the cache has data, i tried scan on visor i can see the data over
>> there.
>>
>> Thanks,
>> Anji.
>> On 19 Sep 2017 00:26, "ANJANEYA PRASAD NIDUBROLU" <anjaneya4u@gmail.com>
>> wrote:
>>
>>> Hello All,
>>>
>>> Hope you are doing great!.
>>>
>>> I have tried Ignite's REST API via postman. It is not throwing any
>>> errors, but the response json's value part has nothing in it.
>>>
>>> Here I am pasting cache config (piece of xml file), bean class and main
>>> class where I am saving the sparkRDD to cache. Also, the attached document
>>> has REST requests and responses along with respective logs.
>>>
>>> As the Spark RDD/ DF I am using has more columns, i have created scala
>>> bean class so that I can save it on to IgniteCache as Key, Value.
>>>
>>> Ignite server and clients are able to talk to each other. Cache is
>>> created and loaded successfully.
>>> So far so good, trouble started when I am trying to trigger from REST
>>> API (the attached notepad has REST APIs i tried to test and their response).
>>>
>>> 1) Though the Bean class I created has 8 columns - the cache created has
>>> only 7 columns, what happened to final one?  [even "*cache -c=<> -scan*"
>>> command from "*visor*" results has 7 columns.]
>>> 2) The REST API responses says it is success but the response json's
>>> value part is empty.
>>>
>>> Not sure what went wrong. Happy to provide more details if required.
>>> Many Thanks,
>>> Anji.
>>>
>>> *ignite-config.xml*
>>>
>>> <property name="cacheConfiguration">
>>>     <list>
>>>         <!-- College Cache -->
>>>         <bean class="org.apache.ignite.configuration.
>>> CacheConfiguration">
>>>             <property name="name" value="CollegeCache"/>
>>>             <property name="backups" value="1"/>
>>>             <property name="atomicityMode" value="ATOMIC"/>
>>>             <property name="cacheMode" value="PARTITIONED"/>
>>>     <property name="queryEntities">
>>> <list>
>>>          <bean class="org.apache.ignite.cache.QueryEntity">
>>> <!-- Key Type -->
>>> <property name="keyType" value="java.lang.String"/>
>>> <!-- Value Type -->
>>> <property name="valueType" value="org.anjaneya.prasad.loadbean.College"/>
>>> <!-- value="java.lang.String"/> -->
>>> <!-- Fields to be used from SQL -->
>>> <property name="fields">
>>> <map>
>>> <!--<entry key="values" value="java.lang.String"/> -->
>>> <entry key="register_number"         value="java.lang.String"/>
>>> <entry key="current_city"            value="java.lang.String"/>
>>> <entry key="date2"                   value="java.lang.String"/>
>>> <entry key="date_of_birth"           value="java.lang.String"/>
>>> <entry key="student_code"            value="java.lang.String"/>
>>> <entry key="native_city"             value="java.lang.String"/>
>>> <entry key="college_end_date_1"      value="java.lang.String"/>
>>> <entry key="college_start_date_1"    value="java.lang.String"/>
>>> </map>
>>> </property>
>>>
>>> <!-- Assign an unique name for the key to access it from SQL easily. -->
>>> <!-- <property name="keyFieldName" value="register_number"/> -->
>>> <property name="tableName" value="CollegeTab"/>
>>>
>>> <!-- Defining indexed fields.-->
>>> <property name="indexes">
>>> <list>
>>> <!-- Single field (aka. column) index -->
>>> <bean class="org.apache.ignite.cache.QueryIndex">
>>> <constructor-arg value="register_number"/>
>>> </bean>
>>>
>>> <!-- Single field (aka. column) index
>>> <bean class="org.apache.ignite.cache.QueryIndex">
>>> <constructor-arg value="native_city"/>
>>> </bean>
>>> <bean class="org.apache.ignite.cache.QueryIndex">
>>> <constructor-arg value="current_city"/>
>>> </bean>
>>> -->
>>>
>>> </list>
>>> </property>
>>> </bean>
>>> </list>
>>> </property>
>>>         </bean>
>>>     </list>
>>> </property>
>>>
>>> =====================================================
>>> *College.scala*
>>>
>>> package org.anjaneya.prasad.loadbean
>>> import scala.beans.BeanProperty
>>>
>>> class College(@BeanProperty register_number :String,
>>>               @BeanProperty current_city: String,
>>>               @BeanProperty date2: String,
>>>               @BeanProperty date_of_birth: String,
>>>               @BeanProperty student_code: String,
>>>               @BeanProperty native_city: String,
>>>               @BeanProperty college_end_date_1: String,
>>>               @BeanProperty college_start_date_1: String
>>>              ) extends Serializable{
>>>   override def toString: String = s"College: $register_number,
>>> $current_city, $date2, $date_of_birth, $student_code, $native_city,
>>>  $college_end_date_1, college_start_date_1"
>>>
>>> //return format("%s, %s, %s, %s, %s, %s, %s, %s", register_number ,
>>> native_city , current_city , student_code,    college_end_date_1,
>>>  date_of_birth,  date2)
>>> }
>>>
>>>
>>> ========================================================
>>> *MainProcess.scala*
>>>
>>> val ic = new IgniteContext(sc, "/home/ops/College/src/main/resources/ignite-config.xml",
>>> true)
>>>
>>> var sharedRDDCollege: IgniteRDD[String, College] =
>>> ic.fromCache("CollegeCache")
>>> //sharedRDDCollege.collect().foreach(print)
>>>
>>> var CollegeCache = test2.rdd.map(x => (x.getString(0),
>>>        new College(x.getString(0) , x.getString(1) , x.getString(2) ,
>>> x.getString(3) , x.getString(4) , x.getString(5) , x.getString(6) ,
>>> x.getString(7))))
>>>
>>> //CollegeCache.collect.foreach(print)
>>> sharedRDDCollege.savePairs(CollegeCache)
>>>
>>>
>>>>

Mime
View raw message