Ответ 1
Я нашел похожую тему, описывающую ту же проблему, что и я. http://forums.java.net/jive/thread.jspa?threadID=53362
Я также нашел ошибку на https://github.com/javaee/jaxb-v2/issues/581
По сути, проблема заключалась в том, что я делал новый JAXBContext ("your.class.xsd") каждый раз, когда вызывался мой бин. Согласно ошибке "Вызов JAXBContext.newInstance(...) подразумевает перезагрузку всего, так как должен использоваться (или re-) загрузчик текущего или указанного класса".
Решением было создать синглтон, который отлично работал.
public enum JAXBContextSingleton {
INSTANCE("your.class.xsd");
private JAXBContext context;
JAXBContextSingleton(String classToCreate) {
try {
this.context = JAXBContext.newInstance(classToCreate);
} catch (JAXBException ex) {
throw new IllegalStateException("Unbale to create JAXBContextSingleton");
}
}
public JAXBContext getContext(){
return context;
}
}
И использовать синглтон
JAXBContext context = JAXBContextSingleton.INSTANCE.getContext();