我是java新手(来自c#.net背景),并尝试上面的例子来编组和解组 .
点击以下链接Marshalling a List of objects implementing a common interface, with JaxB
使用Mr.Blaise Doughan先生提到的上述技术,我能够将java对象编组为xml . 但是当我保存这个xml并尝试将xml解组回java对象时,我在控制台上得到以下内容:
com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException:在两个地方找到2个IllegalAnnotationExceptions @javax.xml.bind.annotation.XmlElementRef注释计数;一个就够了 . 此问题与以下位置有关:在@javax.xml.bind.annotation.XmlElementRef(name = ## default,required = true,type = class javax.xml.bind.annotation.XmlElementRef $ DEFAULT,namespace =)at public java.util.List社区中的Community.getPeople()此问题与以下位置有关:at @javax.xml.bind.annotation.XmlElementRef(name = ## default,required = true,type = class javax.xml .bind.annotation.XmlElementRef $ DEFAULT,namespace =)at public void Community.setPeople(java.util.List)at Community ....
注意:我为Class Boy和Class Girl创建了getters / setter来实现解组 .
2 回答
看来你可能已经注释了getPeople和setPeople方法 . JAXB(和其他Java EE技术)只需要您注释一个 .
For More Information
http://blog.bdoughan.com/2010/11/jaxb-and-inheritance-using-substitution.html
http://blog.bdoughan.com/2011/06/using-jaxbs-xmlaccessortype-to.html
如果你展示你的代码,它会更容易提供帮助......
问题似乎是,你有getter和setter并且混淆了JAXB,因为它不知道如何使用它们来解组xml .
尝试使用
FIELD
访问类型: