Глядя на сообщение об ошибке, которое вы упоминаете в комментариях:
У класса есть два свойства с одинаковым именем "end_date", эта проблема связана со следующим расположением: в публичном java.time.LocalDateTime
Проблема, вероятно, заключается в следующем:
У вас либо нет аннотации @XmlAccessorType
(так что используется тип доступа по умолчанию), либо у вас есть, но с неправильнойтип доступа.
Попробуйте добавить эту аннотацию к своему классу:
@XmlAccessorType(XmlAccessType.FIELD)
Объяснение:
JAXB может обрабатывать ваши классы по-разному.Он может либо просматривать пары получатель / установщик, либо он может просматривать поля напрямую.Это тип доступа.
Тип доступа по умолчанию - XmlAccessType.PUBLIC_MEMBER
, что немного странно: он будет рассматривать как открытые пары геттер / установщик, так и открытые поля.
Если вы поставитеаннотации, такие как @XmlElement
для полей, но у вас также есть методы getter / setter для этих полей, тогда JAXB найдет getter / setter и также найдет поле, потому что оно аннотировано явно, а затем будет думать, что есть два свойствас тем же именем: одно определено getter / setter, а другое определено полем.
Решение состоит в том, чтобы сообщить JAXB, что он должен смотреть только на поля, используя XmlAccessType.FIELD
или@XmlElement
аннотации для метода получения или установки вместо поля.
Это немного странно, но вот как работает JAXB ...
Обратите внимание, что вы можете поставить @XmlAccessorType(XmlAccessType.FIELD)
не только в классе, но и во всем пакете, помещая его в файл package-info.java
- таким образом, вам не нужно помещать его в каждый из классов вашей доменной модели.