Comment déboguer JAXB unmarshalling?

Je suis confronté à un problème avec JAXB unmarshalling. Je crois que je l'ai correctement codé, mais mon unmarshalled objet renvoie null paramètres. Par conséquent, je suis en supposant que lorsque unmarshalling, JAXB est de ne pas voir le XML approprié de la structure qu'il attend. Cependant, je ne reçois pas tous les messages d'erreur ou toutes les exceptions levées.

Est-il de toute façon à l'étape par le biais de la unmarshalling processus afin de voir exactement où/pourquoi il n'arrive pas à remplir mon objet(s)?

Le réel unmarshalling code est assez banales:

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());
}

Cependant, lorsque je l'appelle, je reçois un objet de type clazz retourné (comme prévu), mais déserte.

L'objet DOM que je suis en train de unmarshal est généré par un tiers de l'API. J'ai déjà couru dans certains extrêmement bizarre comportements avec les unmarshalling, c'est pourquoi je voudrais être en mesure de déboguer le processus. Par exemple, si j'essaie de unmarshal un sous-élément à l'intérieur de l'objet DOM (ie: doc.getByElementName("myElement").item(0)), il échoue silencieusement. Cependant, si je convertir le document à une chaîne, et de les réimporter dans un nouveau document, puis il la convertit bien.

Je commence à être assez frustré de ne pas savoir comment déboguer ce problème.

Merci pour les idées!

Eric

OriginalL'auteur Eric B. | 2012-01-05