2010-12-09 25 views
0

J'utilise RESTEasy pour écrire un service web RESTful et essayer d'écrire une réponse qui contient un HashMap. Le service Web produit soit JSON, soit XML. La carte JSON est correcte, mais la carte XML n'a pas de contenu. L'annotation RESTEasy @WrappedMap est supposée rassembler Maps en XML.RESTEasy @WrappedMap

@XmlRootElement(name="Response") 
public class RootResponse { 
    private HashMap<String, String> test; 
    public RootResponse() { 
    test = new HashMap<String, String>(); 
    test.put("Fred", "Wilma"); 
    test.put("Barney", "Betty"); 
    } 
    @XmlElement 
    @WrappedMap(map="test", key="name", entry="spouse") 
    public HashMap<String, String> getTest() { 
    return this.test; 
    } 
} 

JSON:

{ 
    "test": { 
    "Fred": "Wilma", 
    "Barney": "Betty" 
    } 
} 

sortie XML:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<Response> 
    <test/> 
</Response> 

je reçois la même sortie si je laisse de l'annotation @WrappedMap.

Est-ce que @WrappedMap ne fonctionne pas pour les propriétés?

Répondre

0

Je sais que cela fait un petit moment que vous avez publié cette question, mais je veux quand même partager ce que j'ai appris récemment au cas où quelqu'un d'autre pourrait trébucher sur cette question.

@WrappedMap selon this documentation aide seulement à changer le nom des éléments dans le XML de sortie. Quant à savoir pourquoi vous ne pouvez pas obtenir JAXB pour sortir XML à partir du HashMap, je pense que this page a l'explication.

Espérons que cela aide.