2

私のMaven対応プロジェクトでは、すべてが正常に機能していました。

しかし、今日再構築すると、テストがエラーで失敗し始めました

the property or field count on the class org.musicbrainz.mmd2.DiscList 
is required to be included in the propOrder element of the XmlType annotation

コードは変更されていないので、eclipselink MOXy 2.5 スナップショット jar で何かが変更されたと思います。

問題のあるマッピングをoxml.xmlから削除することで解決できました

<java-type name="DiscList">
    <java-attributes>
        <xml-element java-attribute="count" name="disc-count"/>
    </java-attributes>
</java-type>

しかし、結果のjsonは正しくありません(countの名前をdisc-countに変更する必要があるため)。

DiscList.java クラスを変更し、例外で提案されているように propOrder に追加することで修正できます

すなわち

から

@XmlType(name = "", propOrder = {
    "disc"    
})

@XmlType(name = "", propOrder = {
    "disc","count"
})

しかし、これらのクラスはスキーマから自動的に生成されるため、面倒です。スキーマが変更されるたびに手動で編集する必要はありません。

問題は、MOXy で何が変更され、この変更によってバグが発生したのかということです。

4

1 に答える 1