Как использовать JAXB, чтобы маршалировать / аннулировать коллекцию MyBean - PullRequest
6 голосов
/ 23 февраля 2010

У меня есть аннотированный MyBean

@XmlRootElement
public class MyBean ...

Маршаллинг / демаршаллинг MyBean без проблем, например

JAXBContext jaxbCtx = JAXBContext.newInstance(MyBean.class);
Marshaller m = jaxbCtx.createMarshaller();
m.marshal(myBean, writer);

Как я могу использовать JAXB для маршалинга / демаршаллинга коллекции или списка?

Моя попытка приводит к этой ошибке:

javax.xml.bind.MarshalException
 - with linked exception:
[com.sun.istack.internal.SAXException2: unable to marshal type "java.util.ArrayList" as an element because it is missing an @XmlRootElement annotation]
    at com.sun.xml.internal.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:304)
    at com.sun.xml.internal.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.java:230)

1 Ответ

3 голосов
/ 23 февраля 2010

Вы должны создать еще один элемент типа MyBeanList и использовать его. Что-то связанное с SO Использование JAXB для демаршалирования / маршалирования списка

...