Как отладить JAXB unmarshalling?

Я столкнулся с проблемой при размаршалинге 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. Я уже столкнулся с крайне странным поведением при разгруппировке, поэтому я хотел бы иметь возможность отладить этот процесс. Например, если я пытаюсь разгруппировать подэлемент внутри объекта DOM (т.е.: doc.getByElementName("myElement").item(0)), это не удается. Однако, если я конвертирую документ в строку и повторно импортирую его в новый документ, то он преобразует его нормально.

Я начинаю расстраиваться, не зная, как отладить эту проблему.

Спасибо за любую информацию!

Eric

16
задан Eric B. 6 January 2012 в 03:25
поделиться