2

これは@XmlAccessorType(XmlAccessType.NONE)、JAXB が注釈付きの要素のみを気にする必要があることを意味しますpackage-info.javamy.packageただし、単純な POJO MOXy の un/marshalling コードを使用して JUnit テストを実行すると、すべてのクラスについて (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 に答える