J'essaie de comprendre dans quels scénarios (si possible) peut-on obtenir ce type d'exception:MessageBodyWriter pas trouvé pour le type de média = application/JSON pour DTO avec @XmlRootElement
MessageBodyWriter pas trouvé pour les médias type = application/JSON pour DTO avec @XmlRootElement
Oui, mes dépendances de Maven sont corrects et j'ai même deux DTO similaires qui fonctionnent très bien laisser Jersey
gérer la négociation de contenu/...marshalling
Pour une raison quelconque, je reçois l'exception mentionnée avec la suivante:
méthode de ressource:
@GET
@Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
@WebinarSecurityFilter
public Response getXYZ(@QueryParam("startDate") LocalDate start,
@QueryParam("endDate") LocalDate end,
@QueryParam("excludesubaccounts") String excludeSubAcc){
LocalDate now = LocalDate.now();
LocalDate startDate = start == null ? now.minusDays(30) : start;
LocalDate endDate = end == null ? now : end;
boolean excludeSubAccounts = excludeSubAcc != null && "Y".equalsIgnoreCase(excludeSubAcc);
List<ABC> resultQuery = abcService.getABCs(clientId, startDate, endDate, excludeSubAccounts);
CLA cla= new CLA();
cla.setId(clientId);
cla.setA(resultQuery);
cla.setB(resultQuery.size());
return Response.ok(cla).build();
}
DTO/DTOContainer:
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class CLA{
private long id;
private long a;
private long b;
@XmlElement(name = "abc")
private List<ABC> ABCs;
//setters & getters
}
DTO:
J'ai utilisé ce même scénario avec d'autres DTO, alors pourquoi cette ne fonctionne pas? Ma question est la suivante: existe-t-il des scénarios spécifiques où Jersey/Jackson ne peut pas accomplir cette tâche et où il faut le faire manuellement ou est-ce que je manque quelque chose et que je suis aveugle?est ici l'exception:
MessageBodyWriter pas trouvé pour le type de support = application/JSON, le type = classe com.CLA, GenericType = classe com.CLA
ne est pas que parfois fonctionne, et parfois il ne le fait pas, il ne fonctionne pas fonctionne pour cette méthode de ressource même si j'ai deux autres méthodes de ressources qui font exactement la même chose, mais avec des DTO différents
dans un scénario comme celui-ci où il « fonctionne parfois et ne parfois pas », je suggère fortement que vous postez _RÉELLE_ code. Et s'il vous plaît aussi poster vos dépendances. Je n'ai même pas besoin de tester, et je peux déjà dire que ce que vous avez posté (avec les dépendances que j'imagine dans ma tête) devrait fonctionner si je l'ai testé. S'il vous plaît poster assez d'informations _real_, que vous avez testé pour échouer réellement.Et poster la trace de la pile entière. –
Comme je l'ai mentionné dans la question, ce même scénario est utilisé avec deux DTO différents et ils fonctionnent très bien. Ma question est très claire. –
Je ne pense pas ajouter quelques champs à la DTO vous donnera des informations à tous et le seul endroit où j'ai donné tout le code était dans la méthode des ressources. –