hbase - GWT-RPC method returns empty list on success -


i creating webpage having celltable.i need feed table data hbase table.

i have written method retrieve data hbase table , tested it.

but when call method gwt asynchronous rpc method rpc call succeeds returns nothing.in case returns empty list.the alert box show list's size 0.

following related code.

please help.

greetingservice.getdeviceiddata(new asynccallback<list<devicedriverbean>>(){                     public void onfailure(throwable caught) {                         // show rpc error message user                         system.out.println("rpc call failed");                         window.alert("data : rpc call failed");                      }                      public void onsuccess(list<devicedriverbean> result) {                                               //on success                         window.alert("data : rpc call successful");                         //devicedatalist.addall(result);                                             window.alert("result size: " +result.size());                                                  // add text column show driver name.                         textcolumn<devicedriverbean> namecolumn = new textcolumn<devicedriverbean>() {                             @override                             public string getvalue(devicedriverbean object) {                                 window.alert(object.getname());                                 return object.getname();                              }                         };                         table.addcolumn(namecolumn, "name");                          // add text column show device id                               textcolumn<devicedriverbean> deviceidcolumn = new textcolumn<devicedriverbean>() {                             @override                             public string getvalue(devicedriverbean object) {                                 return object.getdeviceid();                             }                         };                         table.addcolumn(deviceidcolumn, "device id");                         table.setrowcount(result.size(), true);  // more code here add columns in celltable                         // push data widget.                         table.setrowdata(0, result);                         simplepager pager = new simplepager();                         pager.setdisplay(table);                         verticalpanel vp = new verticalpanel();                         vp.add(table);                         vp.add(pager);                                // add root panel.                         rootpanel.get("datagridcontainer").add(vp);                     }                                    });  

code retrieve data hbase (server side code)

public list<devicedriverbean> getdeviceiddata()             throws illegalargumentexception {          list<devicedriverbean> deviceidlist = new arraylist<devicedriverbean>();          // escape data client avoid cross-site script         // vulnerabilities.         /*          * input = escapehtml(input); useragent = escapehtml(useragent);          *           * return "hello, " + input + "!<br><br>i running " + serverinfo +          * ".<br><br>it looks using:<br>" + useragent;          */          try {             configuration config = hbaseconnectionsingleton.getinstance()                     .hbaseconnect();             htable testtable = new htable(config, "driver_details");             byte[] family = bytes.tobytes("details");             scan scan = new scan();             int cnt = 0;             resultscanner rs = testtable.getscanner(scan);             (result r = rs.next(); r != null; r = rs.next()) {                  devicedriverbean devicedriverbean = new devicedriverbean();                 byte[] rowid = r.getrow(); // category, date, sentiment                 navigablemap<byte[], byte[]> map = r.getfamilymap(family);                 iterator<entry<byte[], byte[]>> itrt = map.entryset()                         .iterator();                  devicedriverbean.setdeviceid(bytes.tostring(rowid));                  while (itrt.hasnext()) {                      entry<byte[], byte[]> entry = itrt.next();                     //cnt++;                     //system.out.println("count : " + cnt);                      byte[] qual = entry.getkey();                     byte[] val = entry.getvalue();                      if (bytes.tostring(qual).equalsignorecase("account_number")) {                         devicedriverbean.setaccountno(bytes.tostring(val));                     } else if (bytes.tostring(qual).equalsignorecase("make")) {                         devicedriverbean.setmake(bytes.tostring(val));                     } else if (bytes.tostring(qual).equalsignorecase("model")) {                         devicedriverbean.setmodel(bytes.tostring(val));                     } else if (bytes.tostring(qual).equalsignorecase("driver_name")) {                         devicedriverbean.setname(bytes.tostring(val));                     } else if (bytes.tostring(qual).equalsignorecase("premium")) {                         devicedriverbean.setpremium(bytes.tostring(val));                     } else if (bytes.tostring(qual).equalsignorecase("year")) {                         devicedriverbean.setyear(bytes.tostring(val));                     } else {                         system.out.println("no match found");                     }                     /*                      * system.out.println(bytes.tostring(rowid) + " " +                      * bytes.tostring(qual) + " " + bytes.tostring(val));                      */                 }                  deviceidlist.add(devicedriverbean);             }         }          catch (ioexception e) {             // todo auto-generated catch block             e.printstacktrace();         }          catch (exception e) {             // system.out.println("message: "+e.getmessage());             e.printstacktrace();         }          return deviceidlist;      } 

could lazy fetching on server side hbase. means if return list hbase won't trigger read list , simple empty list. don't know correct solution, in past i've seen similar problem on gae. solved asking size of list before returning client.


Comments

Popular posts from this blog

php - get table cell data from and place a copy in another table -

javascript - Mootools wait with Fx.Morph start -

php - Navigate throught databse rows -