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?