Impossible de désorganiser mon xml
-
26-10-2019 - |
Question
Je vous envoie une demande de webservice et reçois des réponse correcte du service Web au format XML avec la valeur correcte peuplée du tage élément de réponse. Maintenant, j'essayé de unmarshal mais l'objet de réponse est d'être peuplée avec nulle au lieu de la valeur que je vois en réponse XML.
Toute chose évidente pour vérifier? Ceci est mon code:
InputSource outputSource = getWebServiceHelper().send(source,messageIdentifier);
JAXBElement<Envelope> responseEnv = (JAXBElement<Envelope>) getWebServiceHelper().unmarshal(new SAXSource(outputSource));
JAXBElement<ResponseObjectType> result = (JAXBElement<ResponseObjectType>)responseEnv.getValue().getBody().getAny().get(0);
Le moment où la deuxième exécute de ligne, l'attribut de réponse devient nulle. En dépit d'être correct entre les balises xml!
Merci une tonne. Chaitanya
La solution
je me suis trouvé la solution par essai intense et erreur. Voici comment je me suis fait.
xjc
Exécution crée 4 classes à savoir ObjectFactory.java
, package-info.java
, classe qui représente la demande de webservice et la classe qui représente une réponse webservice.
J'ai négligé d'inclure package-info.java
alongwith 3 autres classes. Ceci est la raison JAXB est incapable de désorganiser le repsone.
Si je ne ObjectFactory.java
inclus, je reçois exception au démarrage du serveur lancée par haricot org.springframework.oxm.jaxb.Jaxb2Marshaller
défini dans le fichier contexte du printemps, donc je sais que je dois l'inclure. Mais non compris package-info.java
tombe en panne causant silencieusement la frustration!
Je l'ai lu dans Stackoverflow et ailleurs que pour la méthode unmarshal () pour accepter seulement un javax.xml.transform.Source
argument- et unmarshal je besoin d'annotation de l'utilisation @XmlRootElement
mais cela ne semble pas être applicable à mon cas.