У меня есть несколько аннотированных классов JAXB, у которых есть общее поле, поэтому я переместил это поле в суперкласс, например,
public class Base {
protected SomeType commonField;
}
@XmlRootElement(name = "foo") @XmlType(propOrder = { "commonField", "fooField" })
public class Foo extends Base {
private SomeOtherType fooField;
}
@XmlRootElement(name = "bar") @XmlType(propOrder = { "commonField", "barField" })
public class Bar extends Base {
private SomeOtherType barField;
}
Теперь, когда я делаю маршалл одного из Foo
или Bar
, я получаю IllegalAnnotationException
жалобу на то, что commonField
указан в propOrder
, но не представлен в классе. После удаления из аннотации propOrder
все работает нормально, но я подумал, что должен был перечислить все сопоставленные поля. Чего мне не хватает?