NoSuchMethodError in Java using XStream
- by Brad Germain
I'm trying to save a database into a file using XStream and then open it again later using XStream and deserialize it back into the objects it was in previously. The database consists of an arraylist of tables, which consists of an arraylist of a data class where the data class contains an arraylist of objects. I'm basically trying to create an sql compiler. I'm currently getting a java.lang.NoSuchMethodError because of the last line in the load method. Here's what I have:
Save Method
public void save(Database DB){
File file = new File(DB.getName().toUpperCase() + ".xml");
//Test sample
DB.createTable("TBL1(character(a));");
DB.tables.getTable("TBL1").rows.add(new DataList());
DB.tables.getTable("TBL1").rows.getRow(0).add(10);
XStream xstream = new XStream();
//Database
xstream.alias("Database", Database.class);
//Tables
xstream.alias("Table", Table.class);
//Rows
xstream.alias("Row", DataList.class);
//Data
//xstream.alias("Data", Object.class);
//String xml = xstream.toXML(DB);
Writer writer = null;
try {
writer = new FileWriter(file);
writer.write(xstream.toXML(DB));
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
Load Method
public void Load(String dbName){
XStream xstream = new XStream();
BufferedReader br;
StringBuffer buff = null;
try {
br = new BufferedReader(new FileReader(dbName + ".xml"));
buff = new StringBuffer();
String line;
while((line = br.readLine()) != null){
buff.append(line);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
database = (Database)xstream.fromXML(buff.toString());
}