2016-01-26 1 views
1

Ma ressource estÉnoncer ne fonctionne pas avec Generics

@GET 
@Path("/items") 
public MyCollection<Items> getItems()throws Exception{ 
    //Code to return MyCollection<items> 
} 

Ma classe de produit est

@XmlRootElement 
    public class Item{ 
     private int id; 
     private String name; 
     //Have getters and Setters. 
    } 

Et Ma classe de collection est générique comme ci-dessous.

public class MyCollection<T> extends MyBaseCollection{ 
    private java.util.Collection<T> items; 
    private int count; 
} 

Lorsque j'essaie de générer un document en utilisant enunciate. L'exemple Json n'a que l'élément et le nombre et les champs de la classe Item ne sont pas reflétés.

Mon échantillon Json généré est

 { 
    "items" : [ { 
    }, { 
    }, { 
    }, { 
    }, { 
    }, { 
    }, { 
    }, { 
    } ], 
    "count" : ..., 
    } 

Comment obtenir id, nom à l'intérieur l'élément dans l'échantillon généré JSON?

Merci.

Répondre

0

Il s'agit d'une limitation que j'ai également rencontrée, il n'y a aucun moyen de spécifier @TypeHint sur un objet imbriqué. Pour prendre en charge la documentation, envisagez de créer une collection personnalisée qui définit les "éléments" comme une collection de classe spécifique plutôt que générique.

Si vous avez une idée de la façon dont vous voulez que cela fonctionne (en utilisant le type générique), je suggère de soumettre une demande d'amélioration à l'équipe Enunciate.

J'ai un problème similaire où je retourne une carte et je ne peux pas @TypeHint cela.