2015-11-27 9 views
1

У меня есть метод, который должен написать объект в XML-файлXMLEncoder DonT файл записи правильно

public void save(OutputStream os) { 
    XMLEncoder e = new XMLEncoder(new BufferedOutputStream(os)); 
    e.writeObject(this); 
    e.flush(); 
    e.close(); 
} 

Этот класс имеет 4 поля

final static public String EOL = System.getProperty("line.separator"); 
final public static String DEF_FILE_NAME = "security.conf"; 
private Map<String, String> users = new HashMap<>(); 
private String logKey; 

и много методов, один из методов save(OutputStream os) представленных выше.

Но XMLEncoder писать только это

<?xml version="1.0" encoding="UTF-8"?> 
<java version="1.7.0_80" class="java.beans.XMLDecoder"> 
</java> 

Что может быть не так?

+0

Угадайте, что '' '' 'java.beans.XMLDecoder', а не объект java, который вы хотите сериализовать в XML. – BetaRide

+2

Пожалуйста, покажите короткую, но * полную * программу, демонстрирующую проблему ... и обратите внимание, что у вас нет Javascript, поэтому не пытайтесь помещать вещи как фрагменты Javascript. –

+0

класс, который имеет функцию сохранения, вероятно, расширяет или реализует XMLDecoder – cristianhh

ответ

0

Я решил. Проблема была в конструкторе. Класс должен иметь открытый конструктор без параметров.