我坚持应该是非常基本的东西。 我有一个带注释的Person POJO(字段上的@XMLAttribute和@XMLElement注释)。 该类注释为@XMLRootElement。 现在我有一个服务,它会返回一个返回这些实例列表的查询。换一种说法, 我最终得到了
List<Person>
我只是想将这个列表编组到xml中,放入我的servlet的响应输出中。
如果我只是遍历列表并单独编组每个对象:
for(Person person : people){
jaxbMarshaller.marshal(person, out);
}
它多次输出WHOLE文档(我最终为每条记录添加了多个xml标题行):
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<person>
<name>Bob</name>
</person>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<person>
<name>Gary</name>
</person>
不应在记录之间输出重复的标题行。
另一方面,如果我尝试用一个电话整理整个列表: jaxbMarshaller.marshal(人,出);
我得到以下异常:
javax.xml.bind.JAXBException: class java.util.ArrayList nor any of its super class is
known to this context.
简单封送带注释的POJO的多个实例的“正确”方法是什么? 我认为它必须包含在另一个名为'people'的'upper'根元素中,然后包含在每个人节点作为子节点。但是你如何用JAXB做到这一点?
由于
答案 0 :(得分:-1)