2

我使用@XmlAccessorType(XmlAccessType.NONE)inpackage-info.java表示my.packageJAXB 应该只关心带注释的元素。但是,当我使用 un/marshalling 代码为简单的 POJO MOXy 运行 JUnit 测试时,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 的此类问题(参考实现,但我的使用还有其他缺陷),不幸的是我真的不能以这种方式修改每个类。

4

1 回答 1

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 类,尽管它不应该处理,因为它没有被映射。

于 2011-01-18T18:21:00.077 回答