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 <[email protected]> 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 < > [email protected]>: > >> 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" <[email protected]> >> 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) >>> >>> >>>>
