作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试解码以下 XML,但出现异常:“1 个 IllegalAnnotationExceptions EntityVersionInfo 计数没有无参数默认构造函数。”尽管实际上有一个没有参数的构造函数。我缺少什么?
XML:
<topLevelObject>
<entityVersionInfo>
<id>111111</id>
<version>1</version>
</entityVersionInfo>
</topLevelObject>
带有注释的 Java 实体:
顶级对象:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "topLevelObject")
public class TopLevelObject {
@XmlElement(name = "entityVersionInfo")
private EntityVersionInfo versionInfo;
public TopLevelObject() {
//no args constructor
}
//GETTERS AND SETTERS HERE...
}
实体版本信息:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "entityVersionInfo")
public class EntityVersionInfo {
@XmlElement(name = "id")
private String id;
@XmlElement(name = "version")
private String version;
public EntityVersionInfo() {
//no arg constructor
}
//GETTERS AND SETTERS
}
最佳答案
将其添加到 EntityVersionInfo
@Override
public String toString() {
return "EntityVersionInfo [id=" + id + ", version=" + version + "]";
}
将其添加到 TopLevelObject
@Override
public String toString() {
return "TopLevelObject [versionInfo=" + versionInfo + "]";
}
运行这个测试我得到:
JAXBContext context = JAXBContext.newInstance(TopLevelObject.class);
Unmarshaller u = context.createUnmarshaller();
Reader reader = new StringReader(
"<topLevelObject>\r\n" +
" <entityVersionInfo>\r\n" +
" <id>111111</id>\r\n" +
" <version>1</version>\r\n" +
" </entityVersionInfo>\r\n" +
"</topLevelObject>");
Object o = u.unmarshal(new InputSource(reader ));
System.out.println(o);
我明白了:
TopLevelObject [versionInfo=EntityVersionInfo [id=111111, version=1]]
所以你的实体代码很好,也许你的项目或其他东西中有多个EntityVersionInfo类,但是实体很好。
关于java - 具有默认无参数构造函数时出现解码错误 Jaxb - "Class does not have a default no arg constructor",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43075299/
我是一名优秀的程序员,十分优秀!