XML to file geht nicht :(

Status
Nicht offen für weitere Antworten.

KenshinX

Mitglied
HI!
Ich möchte gern meine Klasse (classes) in eine xml datei schreiben.
Hier mein Code, vielleicht findet ihr ja einen Fehler, bei mir schreibt er nur die ersten 4 zeilen in die xml datei.. folgende:

<?xml version="1.0" encoding="UTF-8" ?>
- <java version="1.5.0_01" class="java.beans.XMLDecoder">
<object class="java.util.HashSet" />
</java>


Es geht jetzt nur um den Part, wo steht
case PERSISTENCE_SERIALIZE_XML:

this.transitiveClosure() gibt ein HashSet mit dem inhalt der kompletten klassen zurück, da classes noch unterclassn wie Person, Schüler, Lehrer und Direktor hat

EDIT: ich bekomm auch folgend meldung vom compiler...
java.lang.InstantiationException: klassenset.person
Continuing ...
java.lang.Exception: XMLEncoder: discarding statement HashSet.add(person);
Continuing ...
java.lang.InstantiationException: klassenset.schueler
Continuing ...
java.lang.Exception: XMLEncoder: discarding statement HashSet.add(schueler);
Continuing ...
java.lang.InstantiationException: klassenset.schueler
Continuing ...
java.lang.Exception: XMLEncoder: discarding statement HashSet.add(schueler);
Continuing ...
java.lang.InstantiationException: klassenset.direktor
Continuing ...
java.lang.Exception: XMLEncoder: discarding statement HashSet.add(direktor);
Continuing ...
java.lang.InstantiationException: klassenset.lehrer
Continuing ...
java.lang.Exception: XMLEncoder: discarding statement HashSet.add(lehrer);
Continuing ...
java.lang.InstantiationException: klassenset.lehrer
Continuing ...
java.lang.Exception: XMLEncoder: discarding statement HashSet.add(lehrer);
Continuing ...
java.lang.InstantiationException: klassenset.person
Continuing ...
java.lang.Exception: XMLEncoder: discarding statement HashSet.add(person);
Continuing ...

code:


Code:
/* writes data to a file */
    public boolean write(String filename) throws IOException{
    boolean success = true;
      switch (pt){
          case PERSISTENCE_SERIALIZE:
            try{
              FileOutputStream file = new FileOutputStream(filename);
              ObjectOutputStream o = new ObjectOutputStream(file);
              o.writeObject(this.transitiveClosure());
              o.close();
            } catch(IOException e) {
              success = false;
              System.err.println(e);
            }

            break;
          case PERSISTENCE_SERIALIZE_XML:
              try{
                FileOutputStream filex = new FileOutputStream(filename);
                XMLEncoder o = new XMLEncoder(filex);
                o.writeObject(this.transitiveClosure());
                o.close();
              } catch (IOException e) {
                  success = false;
                  System.err.println(e);
              }
            break;
        }
    return success;
}
 
können lehrer schüler und dergleichen auch als XML Serialisiert werden? sind das korrekte Beans? public Default Konstruktor??
 
getter und setter methoden hab ich für alle variablen in den einzelnen klassen (person, schueler, lehrer, direktor)

auch standard default constructor hab ich jetzt gemacht, jetzt schreibt er folgendes raus in die file: allerdings OHNE exception oder weiteres

<?xml version="1.0" encoding="UTF-8" ?>
- <java version="1.5.0_01" class="java.beans.XMLDecoder">
- <object class="java.util.HashSet">
- <void method="add">
<object class="klassenset.person" />
</void>
- <void method="add">
<object class="klassenset.schueler" />
</void>
- <void method="add">
<object class="klassenset.schueler" />
</void>
- <void method="add">
<object class="klassenset.direktor" />
</void>
- <void method="add">
<object class="klassenset.lehrer" />
</void>
- <void method="add">
<object class="klassenset.lehrer" />
</void>
- <void method="add">
<object class="klassenset.person" />
</void>
</object>
</java>
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben