2015-11-26 6 views
1

Je veux juste retourner le texte "true" via une servlet simple:Comment renvoyer une simple valeur booléenne en texte brut avec @RestController?

@RequestMapping(value = "/", method = RequestMethod.GET) 
@ResponseBody 
public Boolean isValid() { 
    return true; 
} 

Résultat: 406 - The resource identified by this request is only capable of generating responses with characteristics not acceptable according to the request "accept" headers..

Pourquoi? Comment puis-je simplement retourner cette valeur simple? Il n'y a pas de différence si je change le type de retour en String "true".

+0

Que voulez-vous que la réponse soit? Une chaîne de 'true'? –

+0

Exactement. Je veux juste revenir "vrai". – membersound

+0

On dirait qu'il y avait des en-têtes d'accepter dans la demande. Pouvez-vous savoir ce qu'ils sont/étaient? Peut-être que vous devrez fournir un type mime pour la réponse (comme text/plain ou application/xml ...) – Fildor

Répondre

3

Il semble que les convertisseurs par défaut Spring MVC ne peut pas convertir Boolean-text/plain. Seulement quand j'ai essayé une demande avec Accept: application/json cela a fonctionné.

Je suggère de changer le type de retour à String puisque c'est ce que vous voulez quand même revenir.

@RequestMapping(value = "/", method = RequestMethod.GET) 
@ResponseBody 
public String isValid() { 
    return Boolean.TRUE.toString(); 
} 

De cette façon, les demandes sans l'en-tête Accept fonctionnera bien, mais vous pouvez également ajouter Accept: text/plain si vous voulez.

0
@RequestMapping(value = "/", method = RequestMethod.GET) 
@ResponseBody 
public String isValid() { 
    return "true"; 
} 

et supprimer/définir la valeur d'en-tête propre à la tête de votre demande accept.

en savoir plus sur les codes d'état http here