我在@XmlAccessorType(XmlAccessType.NONE)
中使用package-info.java
作为my.package
,这意味着JAXB应该只关注带注释的元素。但是,当我使用un / marshalling代码运行我的JUnit测试时,简单的POJO MOXy会以这种方式尖叫每个类(甚至来自没有jaxb.properties的包或依赖项中引用的其他maven模块):
Exception Description: The class other.maven.module.package.class requires a zero argument constructor or a specified factory method. Note that non-static inner classes do not have zero argument constructors and are not supported.
我没有遇到Metro这样的问题(参考实现,但是我的使用还有其他缺陷),不幸的是我真的不能用这种方式修改每个类。
答案 0 :(得分:2)
我已经能够验证此问题,已输入以下错误来跟踪此问题。
问题摘要:
对于以下对象模型:
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
@XmlAccessorType(XmlAccessType.NONE)
public class Foo {
private Bar bar;
public Bar getBar() {
return bar;
}
public void setBar(Bar bar) {
this.bar = bar;
}
}
和
public class Bar {
public Bar(String name) {
}
}
EclipseLink MOXy JAXB实现正在处理Bar类,尽管它不应该,因为它没有映射。