如何使用 JAXB 将 ArrayList 转换为 XML?
2023-12-13

我正在尝试使用 JAXB 将 ArrayList 转换为 xml。

ArrayList<LDAPUser> myList = new ArrayList<LDAPUser>();

    myList = retrieveUserAttributes.getUserBasicAttributes(lastName,
            retrieveUserAttributes.getLdapContext());



    JAXBContext jaxbContext = JAXBContext.newInstance(LDAPUser.class);
    Marshaller jaxbMarshaller = jaxbContext.createMarshaller();

    StringWriter sw = new StringWriter();

    jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);

     jaxbMarshaller.marshal(myList, sw);
     System.out.println(sw.toString());     
     return sw.toString();

... 但它不起作用,我收到此错误:

2012 年 8 月 27 日 10:43:58 org.apache.catalina.core.StandardWrapperValve 在上下文中为 servlet [spring] 调用严重:Servlet.service() 路径[/Spring3-LDAP-WebService]抛出异常[请求处理 失败的;嵌套异常是 javax.xml.bind.JAXBException:班级 java.util.ArrayList 及其任何超类对此都是未知的 context.] 根本原因 javax.xml.bind.JAXBException: class java.util.ArrayList 及其任何超类对此都是未知的 语境。在 com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.getBeanInfo(JAXBContextImpl.java:554) 在 com.sun.xml.internal.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSerializer.java:470) 在 com.sun.xml.internal.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:314) 在 com.sun.xml.internal.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.java:243) 在 javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(AbstractMarshallerImpl.java:96) 在 即.revenue.spring.RestController.searchLdapUsersByLastNameTwo(RestController.java:69) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法) 处 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)...........

请帮忙! 谢谢。


尝试创建一个类来包装您的列表并使其成为 xml 根,例如:

@XmlRootElement
class LDAPUsers {
    private List<LDAPUser> users;
    ... get ... set ... constructor 
}

然后封送 LDAPUsers 对象。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 JAXB 将 ArrayList 转换为 XML? 的相关文章

随机推荐