J'ai des problèmes avec Jaxb Annotations pour un champ qui est une liste dont le type généalifié est une interface. Quand je l'ai déclaré, comme: Tout fonctionne correctement. Mais lorsque j'ajoute un élément d'emballage, tel que: p> Je trouve que les maréchals de l'objet Java correctement, mais lorsque je mâlée le document créé par marshaling, ma liste est vide. J'ai posté ci-dessous le code pour démontrer ce problème. P> Est-ce que je fais quelque chose de mal, ou est-ce un bug? Je l'ai essayé avec la version 2.1.12 et 2.2-ea avec le même résultat. P> Je travaille à travers l'exemple de mappage d'interfaces avec des annotations situées ici:
https://jaxb.dev.java.net/guide/mbappe_interfaces.html p>
5 Réponses :
Lorsque j'exécute votre programme de test avec jdk1.6.0_20, il semble fonctionner et je reçois la sortie suivante:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <zoo><animals><dog/><cat/></animals></zoo> it worked
J'utilise la version de Jaxb 2.1 incluse avec JDK1.6.0_20. Vous pouvez également essayer votre exemple avec Moxy Jaxb (je suis la tête de technologie). Nous avons corrigé un bug lié à votre question, vous devrez utiliser aujourd'hui (novembre 4) ou ultérieur ECLIPESELINK 2.2.0 Nightly Download: Eclipse.org/eclipselink/downloads/night.php
Avez-vous essayé de mettre vos annotations dans vos accessoires? J'ai également eu ce problème avec @XMLElementwrapper avant, mais je l'ai été résolu en mettant l'annotant mon getter au lieu d'annoter la déclaration de champ. P>
devrait utiliser @XMLElementRefs ({ @Xmlelementalref (type = chien.class), @Xmlelementalref (type = cat.class)}) Liste privée Animaux; P>
ou utiliser @XmelyElement (LAX = TRUE) uniquement et ajoutez Dog.class, Cat.Class à JaxbContext P>
Lorsque j'exécute votre programme de test avec jdk1.6.0_20, il ne fonctionne pas, une fois que j'ai changé d'annotation pour la liste de @xmlanyElement (Lax = true) code> à
@xmlementalSrefs ({ @XMLELEMENTREF (type = chien.class), @xmlelementref (type = cat.class)}) code> alors ça marche. Peu importe que
chien.class code> et
cat.class code> est ajouté à jaxbcontext ou non. P>
Ceci est un bug qui a été corrigé dans JAXB 2.1.13. Mettez à jour vos bibliothèques ou utilisez JDK 1.7 ou version ultérieure et le problème sera résolu. P>