JAXB: unmarshalexception - со связанным исключением: [java.io.IOException: поток закрыт]

1

Я пытаюсь проанализировать свой xml с помощью SAX, я хочу использовать JaxB для создания моей карты моего имени элемента и его значения. Я также хочу переопределить startElement и endElemnt, но до этого я дошел до сих пор, и я получаю unmarshal exception.Any помощь приветствуется !.

JAXBContext jaxbContext = JAXBContext.newInstance(my.class);

      Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();  


     UnmarshallerHandler unmarshallerHandler = jaxbUnmarshaller.getUnmarshallerHandler();

     SAXParserFactory spf = SAXParserFactory.newInstance();
     SAXParser sp = spf.newSAXParser();
     XMLReader xr = sp.getXMLReader();
     xr.setContentHandler(unmarshallerHandler);


     InputStream inputStream =   this.getClass().getResourceAsStream("my.xml");
     InputSource inputSource = new InputSource(inputStream);

     xr.parse(inputSource);



      JAXBElement  element  = (JAXBElement) jaxbUnmarshaller.unmarshal(inputSource);


       //or if I unmarahall to specific class object still i get same exception.

    } catch (JAXBException e) {  
     // some exception occured  
       e.printStackTrace();  
    }
Теги:
jaxb
xsd
sax

1 ответ

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

Вы не можете InputSource после того, как вы использовали синтаксический анализ SAX. Чтобы получить вызов объекта getResult на UnmarshallerHandler.

  • 0
    Итак, как я могу распаковать файл XML в объект класса Java?
  • 0
    @SriHari - это информация, которую вы ищете: wiki.eclipse.org/EclipseLink/Examples/MOXy/GettingStarted
Показать ещё 2 комментария

Ещё вопросы

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