У меня проблема с демонтажем JAXB.Я думаю, что я правильно его кодировал, но мой не маршалированный объект возвращается с нулевыми параметрами.Следовательно, я предполагаю, что при демаршировании JAXB не видит подходящую структуру XML, которую он ожидает.Тем не менее, я не получаю никаких сообщений об ошибках или каких-либо исключений.
Есть ли какой-либо способ пройти через процесс демаршаллинга, чтобы точно определить, где / почему не удается заполнить мой объект (ы)?
Фактический код демаршаллинга довольно приземленный:
public <T> T unmarshall(Node node, Class<T> clazz) throws JAXBException {
// Creating an unmarshaller
Unmarshaller u = JAXBContext.newInstance(clazz).createUnmarshaller();
// unmarshal an instance node into Java content
return clazz.cast(u.unmarshal(node, clazz).getValue());
}
Однако, когда я его вызываю, я получаю объект типа clazz, возвращенный (как и ожидалось), но не заселенный.
DOMобъект, который я пытаюсь разобрать, создается сторонним API.Я уже сталкивался с некоторыми очень странными поведениями с unmarshalling, поэтому я хотел бы иметь возможность отладить процесс.Например, если я пытаюсь демонтировать подэлемент в объекте DOM (то есть: doc.getByElementName ("myElement"). Item (0)), он молча завершается неудачей.Однако, если я преобразую документ в строку и повторно импортирую его в новый документ, он преобразует его в порядке.
Я начинаю разочаровываться, не зная, как решить эту проблему.
Спасибо за любые идеи!
Эрик