2017-09-28 3 views
2

J'ai créé une API Jersey Jersey, qui obtient le texte/plain comme le corps. J'ai essayé cette API localement et cela fonctionnait comme prévu, mais après l'avoir déployé sur un serveur, j'ai obtenu le type de support non supporté.Jersey API POST qui a un corps de chaîne ne fonctionne pas sur un serveur (mais fonctionne localement)

Voici le code:

@POST 
@Path("/dodo") 
@Consumes({MediaType.TEXT_PLAIN}) 
@Produces({MediaType.APPLICATION_JSON}) 
public Response Dodo(String input){ 
    return Response.status(200).entity(new JerseyDto(input,12)).build(); 
} 

Ceci est l'erreur que je vois dans le journal:

com.sun.jersey.spi.container.ContainerRequest getEntity 
SEVERE: A message body reader for Java class java.lang.String, and Java type class java.lang.String, and MIME media type text/plain was not found. 
The registered message body readers compatible with the MIME media type are: 
*/* -> 
    com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider 

Toute pensée?

Répondre

0

Eh bien, j'ai découvert quel était le problème. Nous utilisons un plugin d'ombre pour créer un pot "gras" (incluant toutes les dépendances), et il y a un problème avec Jersey lors de l'utilisation de ce plugin. C'est la raison pour laquelle il était correct lors de l'exécution locale. Vous pouvez en savoir plus sur ce problème et la solution here.