Erreur HTTP Statut 406: @ResponseBody ne retourne pas de données
J'ai le code suivant dans le REPOS, Spring MVC. Ce code est censé renvoyer un JSON type de structure de données appelée ResponseText:
@RequestMapping(value="/movieTheater", headers = {"ACCEPT=*/*"}, method=RequestMethod.GET)
public @ResponseBody ResponseText getCustomerInput(@RequestParam("name") String name, @RequestParam("price") Double price) {
Transaction transaction = new Transaction();
ResponseText result = new ResponseText();
transaction.setMovieName(name);
transaction.setTicketPrice(price);
transaction.setDatetime(new Date());
if(transactionService.addTransaction(transaction))
result.setMessage(ResponseStatus.SUCCESS.getStatus());
else
result.setMessage(ResponseStatus.FAILED.getStatus());
return result;
}
Mais quand je suis à l'exécution de ce code via l'URL ci-dessous dans le navigateur, j'obtiens l'erreur ci-dessous:
URL:
http://localhost:8080/SpringMVCMerchant/movieTheater.htm?name=Smurfs&price=300.00
Erreur:
HTTP Status 406 -
type Status report
message
description The resource identified by this request is only capable of generating responses with characteristics not acceptable according to the request "accept" headers.
Je n'arrive pas à identifier ce que je fais de mal ici. J'ai regardé sur le Net expliquant cette erreur, mais ne sais toujours pas ce que je suis absent. J'ai donné à ACCEPTER="/", qui est censé couvrir toutes sortes de réponses, non?
S'il vous plaît aider!
Merci à l'avance!
* * * * Lorsque j'ai ajouté l'en-tête
headers={"Accept: application/json, text/javascript"}
au lieu de ce qui précède, j'ai l'erreur suivante:
HTTP Status 405 - Request method 'GET' not supported
j'ai le même problème et je viens de l'ajouter
Merci pour votre réponse. J'ai essayé ce. Toujours pas de travail.
Peut-être essayer d'utiliser "ContentNegotiatingViewResolver". mkyong.com/spring-mvc/...
Utilisé. Toujours la même erreur.
était-il résolu?
<mvc:annotation-driven/>
dans mon mvc-dispatcher-servlet.xml
mon problème est résolu, je n'ai pas non quel est le problème, mais il peut aider à u ..Merci pour votre réponse. J'ai essayé ce. Toujours pas de travail.
Peut-être essayer d'utiliser "ContentNegotiatingViewResolver". mkyong.com/spring-mvc/...
Utilisé. Toujours la même erreur.
était-il résolu?
OriginalL'auteur kajarigd | 2013-08-11
Vous devez vous connecter pour publier un commentaire.
J'ai fait face à cette erreur, et quand je l'ai enlevé
.html
suffixe qui a été, à tort, ajouté à l'URL de la requête, cette erreur s'est résolu!.html
pour se débarrasser de l'erreur (dépend vraiment du Printemps de configuration http. (+1 sur votre réponse)OriginalL'auteur James Jithin
Essayez d'ajouter "jackson" de la dépendance à votre pom.xml (ou ajoutez-le bocal dans le cas où si vous n'utilisez pas de maven).
Sans cette lib, vous pouvez retourner seule Chaîne ou similaire à Chaîne standard types
Non, aucune configuration spéciale dans applicationcontext.xml besoin
Essayez de supprimer tous les attributs de @RequestMapping à l'exception de la "valeur" et de "méthode"
J'ai fait comme vous avez dit. Toujours la même erreur 406.
Veuillez voir ci-dessus plus j'ai fait à ma question. Une nouvelle observation.
OriginalL'auteur yname
Vous devez définir les types qui peuvent être produits par les
produit
attribut de la@RequestMapping
annotation, et non pas à travers la mise en-têtes personnalisés.Note que vous avez probablement devrait uniquement les types de béton dans le
produces
attribut, en disant: quels types peuvent effectivement être produit; prétendant produire quoi que ce soit n'est en fait pas très utile, sauf si vous servez des fichiers et de faire le travail réel pour déterminer les types MIME. La sérialisation JSON et XML sont très fréquents options, mais la sérialisation d'un flux vidéo est... moins commun, dirons-nous?Vous besoin d'message convertisseurs.
Veuillez voir ci-dessus plus j'ai fait à ma question. Une nouvelle observation.
J'ai mis à jour le printemps des pots et produit maintenant, j'ai été accepté amende. Mais quand je suis à l'ajout de produit, j'obtiens l'erreur: code d'État HTTP 404 - /SpringMVCMerchant/movieTheater.htm la ressource demandée n'est pas disponible.
OriginalL'auteur Donal Fellows
J'ai le même problème, mais je figure sur :
(1) retirez le
(2) ajouter ceci dans votre pom.xml :
(3) changement de produit:
(4) supprimer le contenu-négociation-manager si vous avez
OriginalL'auteur Justin
Avez-vous peut-être oublier de Sérialisable dans le ResponseText?
OriginalL'auteur ruben056
Pour moi le problème était que j'ai inclus le contexte de l'annotation de la conduite:
Mais vous avez oublié d'inclure mvc annotation par:
Pour une raison quelconque, dans ce cas, Printemps revient
406
au lieu de404
ou pertinentes. Je ne sais pas.Quelle est la différence entre <mvc:annotation-driven /> et <context:annotation-config /> servlet?
OriginalL'auteur Rudziankoŭ