Исключительная ситуация при использовании XMLEncoder

1

Я пытаюсь использовать XMLEncoder в своей программе Java, но я получаю исключение java.lang.InstantiationException. Follwing - мой код, который я использую:

   /*
       Method for serialization.
   */
   public void serializeToXml(Object obj) throws FileNotFoundException{

        FileOutputStream fos = new FileOutputStream("/home/neeraj/xmlOP.xml"); 
        XMLEncoder encoder  =  new XMLEncoder(fos);
        encoder.writeObject(obj);
        encoder.close();
    }


   public static void main(String [] args){


        String uuid = UUID.randomUUID().toString();

        SimpleDateFormat format = new SimpleDateFormat("dd/mm/yyyy");
        Date date = new Date();
        String tDate = format.format(date);

        ClassA a = new  ClassA(uuid,"expense","Pune",tDate,1,200,0,4);
        a.createAssociatedEvents(2);

        serializationExample serializer = new serializationExample();
        try {

            serializer.serializeToXml(a);

        } catch (FileNotFoundException e) {

            e.printStackTrace();
        }

}

Кроме того: у меня есть еще два класса: classA и classB. Оба класса реализуют Serializable. ClassA имеет ArrayList класса B. Все поля обоих классов имеют методы getter и setter. Точная ошибка (трассировка стека);

 java.lang.InstantiationException: classA continuing...

 java.lang.exception :XMLEncoder:discarding statement XMLEncoder.writeObject(classA);
 continuing.

Я не могу понять, что происходит неправильно или что означает эта ошибка. Как мне исправить мой код, чтобы все работало?

Благодарю.

Теги:
exception
instantiationexception
xmlencoder

1 ответ

4
Лучший ответ

XMLEncoder требует, чтобы объект JavaBeans сериализовал его, поэтому вам нужно определить конструктор общедоступного значения по умолчанию (без аргументов) в ClassA и ClassB.

Соглашение JavaBeans находится здесь.

  • 0
    Хорошо, ваш ответ работал хорошо, спасибо за это, но теперь у меня все еще есть еще один вопрос, как я могу дать конкретные имена для элементов в XML, теперь то, что у меня есть в XML, - это очень длинный формат. это хочет элементы как <имя элемента> значение </ имя элемента>
  • 0
    то, что у меня есть сейчас: <void property = "имя свойства"> <int> 4 </ int> </ void>, которое очень длинное и запутанное для чтения
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню