Guten Tag,
ich habe ein prgramm geschrieben in dem man Benutzer, Programme und keys anlegen kann.
Diese kann man dann einander zuweißen und kann dann schauen welcher Benutzer welche Programme und welche Keys benutzt.
Das läuft auch einwandfrei, nur das Speichern der Objekte in XML Dateien nicht.
Ich möchte das mithilfe von JBAX machen, nur habe ich keine Ahnung wie ich das anstellen soll.
Gegoogelt habe ich auch schon, nur gibt es keine verständliche erklärung dafür.
Was ich bis jetzt gefunden habe:
Eine Klasse wird als @XmlRootElement definiert.
Die Attribute des Objecktes werden als @XmlElement definiert.
Danach schreibt man mit:
den code in die xml Datei.
Bei mir kommt da immer eine Fehlermeldung:
Mein Problem ist jetzt:
1. Welche klasse muss ich als @XmlRootElement definieren?
2. Was ist @XmlElement
3. Warum funktioniert das mit dem Schreiben in die Datei nicht, was muss ich da machen?
Kann mir das jemand erklären? Wäre sehr Dankbar.
Wenn es eine Alternative für JAXB gibt, dann bin ich offen für neues.
Gruß, Manni
ich habe ein prgramm geschrieben in dem man Benutzer, Programme und keys anlegen kann.
Diese kann man dann einander zuweißen und kann dann schauen welcher Benutzer welche Programme und welche Keys benutzt.
Das läuft auch einwandfrei, nur das Speichern der Objekte in XML Dateien nicht.
Ich möchte das mithilfe von JBAX machen, nur habe ich keine Ahnung wie ich das anstellen soll.
Gegoogelt habe ich auch schon, nur gibt es keine verständliche erklärung dafür.
Was ich bis jetzt gefunden habe:
Eine Klasse wird als @XmlRootElement definiert.
Die Attribute des Objecktes werden als @XmlElement definiert.
Danach schreibt man mit:
Java:
JAXBContext context = JAXBContext.newInstance( Benutzer.class );
Marshaller m = context.createMarshaller();
m.setProperty( Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE );
m.marshal( club, System.out );
Writer w = null;
w = new FileWriter( "C:\\Dokumente und Einstellungen\\Benutzer\\Desktop\\jaxb.xml" );
m.marshal( user, w );
den code in die xml Datei.
Bei mir kommt da immer eine Fehlermeldung:
Java:
com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException: 1 counts of IllegalAnnotationExceptions
Administration.Application does not have a no-arg default constructor.
this problem is related to the following location:
at Administration.Application
at com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException$Builder.check(Unknown Source)
at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(Unknown Source)
at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.<init>(Unknown Source)
at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl$JAXBContextBuilder.build(Unknown Source)
at com.sun.xml.internal.bind.v2.ContextFactory.createContext(Unknown Source)
at com.sun.xml.internal.bind.v2.ContextFactory.createContext(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at javax.xml.bind.ContextFinder.newInstance(Unknown Source)
at javax.xml.bind.ContextFinder.find(Unknown Source)
at javax.xml.bind.JAXBContext.newInstance(Unknown Source)
at javax.xml.bind.JAXBContext.newInstance(Unknown Source)
Mein Problem ist jetzt:
1. Welche klasse muss ich als @XmlRootElement definieren?
2. Was ist @XmlElement
3. Warum funktioniert das mit dem Schreiben in die Datei nicht, was muss ich da machen?
Kann mir das jemand erklären? Wäre sehr Dankbar.
Wenn es eine Alternative für JAXB gibt, dann bin ich offen für neues.
Gruß, Manni