Hallo alle zusammen,
bin mal wieder stecken geblieben in einem meiner Programme, die ich gerade "versuche" zu schreibe.
Naja, ich möchte ein Object (das über eine Liste von Objekten verfügt) in einer XML Datei abspeichern. Das klappt super.
Jedoch möchte ich nun aus dieser XML Datei wieder mithilfe der "JAXB.unmarshal(file, DatenBank.class); Methode" mein Ursprungsobjekt wieder erhalten.
Leider stoße ich auf eine Fehlermeldung:
Information: No default constructor found on class zaehlerstandrechner.DatenObject
Ich kann mir dieses Problem echt nicht erklären, vor allem weil es in allen Beispielen im Netz auch ohne StandardKonstruktor gelöst wurde....
So und dann gibt es noch die DatenObject Klasse:
Und die DatenBank-Klasse:
Leider tritt bei mir im diese oben genannte Fehlermeldung auf. Was habe ich DatenObject falsch gemacht?
Vielen, vielen Dank für eure Mühe,
Nils
bin mal wieder stecken geblieben in einem meiner Programme, die ich gerade "versuche" zu schreibe.
Naja, ich möchte ein Object (das über eine Liste von Objekten verfügt) in einer XML Datei abspeichern. Das klappt super.
Jedoch möchte ich nun aus dieser XML Datei wieder mithilfe der "JAXB.unmarshal(file, DatenBank.class); Methode" mein Ursprungsobjekt wieder erhalten.
Leider stoße ich auf eine Fehlermeldung:
Information: No default constructor found on class zaehlerstandrechner.DatenObject
Ich kann mir dieses Problem echt nicht erklären, vor allem weil es in allen Beispielen im Netz auch ohne StandardKonstruktor gelöst wurde....
Java:
//Erstelle einfaches Objekt
DatenObject newObject = new DatenObject(gas, stromOG, stromEG, warmzaehlerOG, warmzaehlerEG, wasserGesamt, wasserWarmGesamt, wasserWarmOG, wasserKaltOG, notizen);
//Erstelle DatenBankObject, was newObject von oben enthalten soll
DatenBank myDaten = new DatenBank();
//Schreibe newObject in myDaten
myDaten.addObject(newObject);
//Schreibe myDaten in XML
File xmlFile = new File("mydaten.xml");
JAXB.marshal( myDaten, xmlFile );
//versuche XML Datei in Objekt zu schreiben
JAXBContext jc = null;
Unmarshaller unmarshaller = null;
try {
jc = JAXBContext.newInstance(DatenBank.class);
unmarshaller = jc.createUnmarshaller();
DatenBank daten2 = (DatenBank) unmarshaller.unmarshal(xmlFile);
} catch (JAXBException ex) {
Logger.getLogger(AddObject.class.getName()).log(Level.SEVERE, null, ex);
}
So und dann gibt es noch die DatenObject Klasse:
Java:
public class DatenObject {
public DatenObject(double gas_, double stromOG_, double stromEG_, double warmzaehlerOG_, double warmzaehlerEG_, double wasserGesamt_, double wasserWarmGesamt_, double wasserWarmOG_, double wasserKaltOG_, String notizen_)
{
super();
this.gas = gas_;
this.stromOG = stromOG_;
this.stromEG = stromEG_;
this.warmzaehlerOG = warmzaehlerOG_;
this.warmzaehlerEG = warmzaehlerEG_;
this.wasserGesamt = wasserGesamt_;
this.wasserWarmGesamt = wasserWarmGesamt_;
this.wasserWarmOG = wasserWarmOG_;
this.wasserKaltOG = wasserKaltOG_;
this.notizen = notizen_;
//Zu berechnen
this.wasserWarmEG = this.wasserWarmGesamt - this.wasserWarmOG;
this.wasserKaltEG = this.wasserGesamt - this.wasserWarmGesamt - this.wasserKaltOG;
}
public double gas;
public double stromOG;
public double stromEG;
public double warmzaehlerOG;
public double warmzaehlerEG;
public double wasserGesamt;
public double wasserWarmGesamt;
public double wasserWarmOG;
public double wasserKaltOG;
public String notizen;
//Zu Berechnen
public double wasserWarmEG;
public double wasserKaltEG;
}
Und die DatenBank-Klasse:
Java:
@XmlRootElement(name="DatenBank")
public class DatenBank {
public List<DatenObject> datenList;
public List<DatenObject> getAlbumList() {
if (datenList == null) {
datenList = new LinkedList<DatenObject>();
}
return datenList;
}
public void addObject(DatenObject object_) {
if(this.datenList == null)
{
this.datenList = new ArrayList<DatenObject>();
}
this.datenList.add(object_);
}
public List<DatenObject> getItems() {
return datenList;
}
}
Leider tritt bei mir im diese oben genannte Fehlermeldung auf. Was habe ich DatenObject falsch gemacht?
Vielen, vielen Dank für eure Mühe,
Nils