Quantcast
Channel: VMware Communities : Unanswered Discussions - vFabric GemFire [ARCHIVED]
Viewing all articles
Browse latest Browse all 532

Error when querying with Class Object implementing DataSerializable [Java]

$
0
0

Hi

 

I am working on helper methods using Java for reading and writing non-primitive data (a class object which implements DataSerializable.) to a region via a cacheserver. The following error was encounter when the class object is put into the region.

 

Caused by: java.lang.NoSuchMethodException: testing.TestDataObj.<init>()
        at java.lang.Class.getConstructor0(Unknown Source)
        at java.lang.Class.getConstructor(Unknown Source)
        at com.gemstone.gemfire.internal.InternalDataSerializer.readDataSerializable(InternalDataSerializer.java:2402)


Below is the class object

import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;

import com.gemstone.gemfire.DataSerializable;
import com.gemstone.gemfire.DataSerializer;

 

public class TestDataObj implements DataSerializable {


private int id;
private String testData;

public TestDataObj(int index, String content ){
  this.id = index;   
  this.testData = content;
}

public int getId(){
  return this.id;
}

public String getTestData(){
     return testData; 
}

public void setTestData(String text){
  this.testData = text;
}

@Override
public void fromData(DataInput in) throws IOException, ClassNotFoundException {
  this.id = DataSerializer.readInteger(in);
  this.testData = DataSerializer.readString(in);
 
}

@Override
public void toData(DataOutput out) throws IOException {
  DataSerializer.writeInteger(this.id, out);
  DataSerializer.writeString(this.testData, out);

}

public String toString() {
  String arr = "Data Value -> ";
  arr = arr + "ID = " + this.id + " Content = " + this.testData;
  return arr;
}

}

 

Are the above DataSerializer methods implemented correctly?
What could be the cause of the problem above?


Viewing all articles
Browse latest Browse all 532

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>