当前位置: 首页 > 知识库问答 >
问题:

如何使用JAXB将ArrayList转换为XML?

柳奇思
2023-03-14

我试图使用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组织。阿帕奇。卡塔琳娜。果心StandardWrapperValve:Servlet。路径为[/Spring3 LDAP WebService]的上下文中servlet[spring]的service()引发异常[请求处理失败;嵌套异常为javax.xml.bind.JAXBException:class java.util.ArrayList,该上下文不知道它的任何超类。]使用根本原因javax。xml。绑定JAXBEException:类java。util。ArrayList及其任何超类都不为本文所知。在com上。太阳xml。内部的绑定v2。运行时。JAXBContextImpl。getBeanInfo(JAXBContextImpl.java:554)位于com。太阳xml。内部的绑定v2。运行时。XMLSerializer。childAsRoot(XMLSerializer.java:470)位于com。太阳xml。内部的绑定v2。运行时。马歇尔雷普。在com上编写(MarshallerImpl.java:314)。太阳xml。内部的绑定v2。运行时。马歇尔雷普。javax上的marshall(MarshallerImpl.java:243)。xml。绑定帮手。抽象的。Marshall(AbstractMarshallerImpl.java:96)位于ie.revenue。SpringRestController。在sun上搜索LdapUsersByLastNametwo(RestController.java:69)。反映NativeMethodAccessorImpl。在sun上调用0(本机方法)。反映NativeMethodAccessorImpl。调用(NativeMethodAccessorImpl.java:39)。。。。。。。。。。。

请帮忙!谢谢

共有1个答案

拓拔辰钊
2023-03-14

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

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

然后封送LDAPUsers对象。

 类似资料:
  • 此API调用返回一个可能较大的列表 排序、搜索和访问一个潜在的大型LinkedList将非常缓慢,对我的程序来说是不可接受的。因此,我需要将列表转换为ArrayList,以确保程序的实际效率。但是,由于列表很可能已经是ArrayList,因此不必要地创建列表的新ArrayList副本将效率低下。 考虑到这些约束,我提出了以下方法将列表转换为ArrayList: 我的问题是:这是处理具有未知实现的列

  • 问题内容: 我需要将a转换为an ,但我不知道如何 基本上我想变成一个。 问题答案: 您可以执行以下操作:

  • 不推荐使用,是否有其他解决此问题的方法?

  • 这一点总的来说 谁能告诉我我哪里错了,这不是重复的答案,我试了所有的可能,我已经通过网络,但没有一个给我正确的答案,如果你能帮助我,我很高兴。这是我的完整代码 错误:它有点笨拙,它在这里是完整的

  • 我已将此JSON转换为Hashmap http://www.mocky.io/v2/5d0dc72d3400008c00ca4a62 我有嵌套的Hashmap,我想把它转换成ArrayList 我想从获取所有数据并添加到列表中。我还希望hashmap的密钥也将作为指南导入列表中。 这是银行舱 这是银行名单课程 我试过的 但我不明白为什么会有例外 如果可以的话,请给我推荐其他算法

  • 问题内容: 我正在尝试使用JAXB将A序列化为XML。我是Java的新手(来自C#),所以对此任务感到困惑。 我已经看到以下代码: 像这样被调用:,但是是错误的(我已经知道)。 Java专家可以告诉我如何调用此代码吗?提出一个更简单的实现(当然还有一个调用示例)也是最受欢迎的。 谢谢。 问题答案: 您将需要创建一个包装器类以保留: 然后,您可以执行以下操作: 这将产生以下输出: 注意事项 是线程安