gpt4 book ai didi

java - 获取 JAXB IllegalAnnotationExceptions 准备 UnMarshal

转载 作者:行者123 更新时间:2023-11-30 02:22:18 24 4
gpt4 key购买 nike

我尝试在这里查找解决方案,但没有一个对我有用。因此就有了这个帖子。

这是我用来调用 JAXBContext 的代码

final JAXBContext jaxbContext = JAXBContext.newInstance(new Class[] { ClassA.class, ClassB.class });
final Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
return (ClassA) jaxbUnmarshaller.unmarshal(content);

这是我正在尝试解压缩的示例 XML:

<?xml version="1.0" encoding="utf-8"?>
<ElementList>
<Element El1="111" EL2="222" EL3="333" EL4="444" />
<Element El1="1111" EL2="22222" EL3="3333" EL4="4444" />
</ElementList

A类:

@XmlRootElement(name = "ElementList")
@XmlAccessorType(XmlAccessType.FIELD)
class ClassA {

@XmlElement(name = "Element")
private List<ClassB> classBList;

ClassA(final List<ClassB> classBList) {
this.classBList = classBList;
}

List<ClassB> getClassBList() {
return classBList;
}

void setClassBList(final List<ClassB> classBList)
{
this.classBList = classBList;
}
}

B类:

@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "Element")
@XmlType(name = "Element", propOrder = { "El1Value", "EL2Value", "EL3Value", "EL4Value"})
class ClassB {

@XmlAttribute(name = "El1")
private String El1Value;

@XmlAttribute(name = "EL2")
private String EL2Value;

@XmlAttribute(name = "EL3")
private String EL3Value;

@XmlAttribute(name = "EL4")
private String EL4Value;

//Getters and Setters for values
}

我正在获取

1 counts of IllegalAnnotationExceptions 

即使在检查了其他解决方案之后,我还是得到了这个,所以我确信我错过了一些东西或者做错了一些事情。我花了一天的大部分时间在这上面。

有人可以帮我解决这个问题吗?我非常感谢您的帮助。

最佳答案

我已经测试了您的代码,这是完整的错误:

Exception in thread "main" com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 1 counts of IllegalAnnotationExceptions
com.package.ClassA does not have a no-arg default constructor.
this problem is related to the following location:
at com.package.ClassA

解码失败,因为类 A 缺少默认构造函数,即不带参数的构造函数。添加一个就可以了。

关于java - 获取 JAXB IllegalAnnotationExceptions 准备 UnMarshal,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46455136/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com