JAXB pas unmarshalling xml de n'importe quel élément JAXBElement
J'ai un webservice appel. Dans ma réponse, lorsque j'essaie d'obtenir le code xml any
élément dans un JAXBElement il renvoie une erreur.
Dans le schéma que j'ai:
<xs:complexType name="InputType">
<xs:annotation></xs:annotation>
<xs:sequence>
<xs:element name="Id" type="xs:string" />
<xs:any namespace="##any" processContents="lax" minOccurs="0" />
</xs:sequence>
</xs:complexType>
Le code, je suis en utilisant:
Object obj = inputType.getAny();
Object o = ((JAXBElement)obj).getValue();
Cette ligne génère l'erreur: org.apache.xerces.dom.ElementNSImpl incompatible with javax.xml.bind.JAXBElement
erreur dans le savon de l'interface utilisateur.
Pourquoi ne pas secrète à JAXBElement? Comment puis-je le faire fonctionner?
OriginalL'auteur valve2010 | 2011-02-25
Vous devez vous connecter pour publier un commentaire.
Si la propriété est annoté avec le suivant, le contenu sera mappé comme les nœuds DOM:
Si le lax=true indicateur est défini ensuite les éléments connus seront convertis en objets de domaine:
Pour plus d'informations sur @XmlAnyElement voir:
Mise à JOUR #1
Avec lax=true, vous pouvez obtenir un mélange d'objets de domaine et les nœuds DOM. Ce qui suit est la java docs:
Mise à JOUR #2
Pour finalement résoudre le problème:
Découvrez mon blog pour un exemple:
Vous pouvez toujours obtenir les nœuds DOM dans votre propriété annotée avec @XmlAnyElement(lax=true). Voir mise à jour de réponse.
Merci pour l'information, comment puis-je obtenir la valeur de ce getAny(). quelle est la solution?
J'ai mis à jour ma réponse, là encore, l'astuce consiste à associer à l'élément racine de ces fragments avec une classe Java à l'aide de @XmlRootElement ou @XmlElementDecl.
Merci pour votre patience, mais je n'avais pas de chance avec @XmlRootElement et la plupart de mon code est générer par le biais de l'outil. Nous avons eu quelques précédents exemples de code qui a travaillé à faire des solutions de contournement, la seule diffrence est ceux-ci sont en Enumuration contexte et toute la valeur de l'enum de l'Objet, qui est proche du concept de ce que je suis en train de réaliser. Je suis à l'aide de websphere 6.1 et du savon de 1,7 jaxb 2.0 - qui, j'imagine, pas un problème.
OriginalL'auteur Blaise Doughan
valider votre xml à l'encontre de votre schéma. que devrait être la première chose à vérifier
OriginalL'auteur x.509