Задать вопрос
@u47ural

Ошибка серилизации обьекта в xml, прошу помощи в решении?

Испоьзую javafx-sdk-18.0.2
import java.beans.ExceptionListener;
import java.beans.XMLDecoder;
import java.beans.XMLEncoder;

Хочу сохранить обьект в xml файле методом:
sets.setFieldStr1(txtSert.getText());
sets.setFieldStr2(txtPath.getText());
// сериализуем
try {
serializeToXML ( sets );
} catch (IOException e) {
e.printStackTrace();
}
btnCancel.fire();

public static void serializeToXML (UserSettings settings) throws IOException {
FileOutputStream fos = new FileOutputStream("settings.xml");
XMLEncoder encoder = new XMLEncoder(fos);
encoder.setExceptionListener(new ExceptionListener() {
public void exceptionThrown(Exception e) {
System.out.println("Exception! :"+e.toString());
}
});
System.out.println("456");
encoder.writeObject(settings);
System.out.println("789");
encoder.close();
fos.close();
}
класс обьекта:
public class UserSettings {
public UserSettings(){}

private String fieldStr1;
private String fieldStr2;

public String getFieldStr1() {
return fieldStr1;
}

public void setFieldStr1(String fieldStr1) {
this.fieldStr1 = fieldStr1;
}

public String getFieldStr2() {
return fieldStr2;
}

public void setFieldStr2(String fieldStr2) {
this.fieldStr2 = fieldStr2;
}

@Override
public String toString() {
return "UserSettings [fieldStr1=" + fieldStr1 + ", fieldStr2=" + fieldStr2 + "]";
}
}

обьект set не пустой, файл xml формируется, но не заполняется, получаю исключение:
456
Exception! :java.lang.IllegalAccessException: class sun.reflect.misc.Trampoline$$InjectedInvoker/0x0000000800f42800 cannot access class application.UserSettings (in module SingUF) because module SingUF does not export application to unnamed module @2ef6fdfc
Exception! :java.lang.Exception: XMLEncoder: discarding statement XMLEncoder.writeObject(UserSettings);
789

Буду благодарен за любые подсказки, сам устал уже гуглить эту проблему.
  • Вопрос задан
  • 41 просмотр
Подписаться 1 Простой 3 комментария
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы