У меня есть следующие в моей package-info.java
:XmlJavaTypeAdapter на уровне пакета не работает
@XmlJavaTypeAdapters({
@XmlJavaTypeAdapter(type=OffsetDateTime.class, value=OffsetDateTimeAdapter.class)
})
package java.time;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapters;
и следующее в качестве адаптера:
package java.time;
import javax.xml.bind.annotation.adapters.XmlAdapter;
public class OffsetDateTimeAdapter extends XmlAdapter<String, OffsetDateTime> {
@Override
public OffsetDateTime unmarshal(String v) throws Exception {
return OffsetDateTime.parse(v);
}
@Override
public String marshal(OffsetDateTime v) throws Exception {
return v.toString();
}
}
Но когда я делаю следующее:
JAXBContext jc = JAXBContext.newInstance(Root.class);
Unmarshaller unmarshaller = jc.createUnmarshaller();
JAXBElement<Root> rootElement = unmarshaller.unmarshal(node, Root.class);
Я получаю следующее:
com.sun.xml.internal.bind.v2.ClassFactory create0 INFO: не конструктор по умолчанию Нет найден на классе java.time.OffsetDateTime
У меня есть что-то отсутствует в моей установки - ее не зовет меня адаптер?
Вы пытались добавить пустой конструктор в класс OffsetDateTime? –
@ReneM. - OffsetDateTime - это класс JDK: https://docs.oracle.com/javase/8/docs/api/java/time/OffsetDateTime.html – Cheetah
Извините, моя вина. –