私の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 で何が変更され、この変更によってバグが発生したのかということです。