Bonjour à tous,
Je suis débutant en java et je cherche à sauvegarder un petit nombre d'objets (15 max). Je me suis orienté vers une persistance xml avec XStream pour des raisons évidente de simplicité et de rapidité (par rapport à une BD). Le résultat est tout à fait satisfaisant en passant par un objet XStream:
En revanche, quand je veux passer par l'objet PersistenceStrategy ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 public static void serializeToFile (Object dataType) throws IOException{ XStream xstream = new XStream(new DomDriver()); FileOutputStream fos = new FileOutputStream("DataTypesSave.xml"); xstream.toXML(dataType, fos); fos.close(); }
j'ai systématiquement une erreur du type:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 public class XmlPersistence { private XmlSet xmlSet; public XmlPersistence(String dir){ PersistenceStrategy strategy = new FilePersistenceStrategy(new File(dir)); xmlSet = new XmlSet(strategy); } public void save(IDataType data){ xmlSet.add(data); } }
Alors, je pourrais toujours répéter la première procédure autant de fois que j'ai d'objet à sauvegarder mais c'est pas beau, pas pratique et puis j'aimerais bien comprendre aussi ... donc si une âme charitable pouvait me venir en aide !!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Exception in thread "main" java.lang.NullPointerException at com.thoughtworks.xstream.persistence.AbstractFilePersistenceStrategy$XmlMapEntriesIterator.hasNext(AbstractFilePersistenceStrategy.java:98) at java.util.AbstractMap.containsValue(AbstractMap.java:117) at com.thoughtworks.xstream.persistence.XmlSet.add(XmlSet.java:39) at iDataType.Serialization.XmlPersistence.save(XmlPersistence.java:23) at test.InputManagerTest.main(InputManagerTest.java:91)
Merci d'avance
Partager