J'ai eu un problème avec la capture de la requête PUT envoyée au serveur.Spring Framework, activer la méthode PUT
Ce sont mes méthodes:
@RequestMapping(method= RequestMethod.GET)
public String getCity(@PathVariable(value="cid") String cid, @RequestParam(value="State") Integer state, Model model) {
System.out.println("get request");
return "index";
}
@RequestMapping(method= RequestMethod.PUT)
public String putCity(@PathVariable(value="cid") String cid, @RequestParam(value="State") Integer state, Model model) {
System.out.println("put request");
return "index";
}
Quand je traçais l'appel, ma demande de PUT a été traitée par la méthode GET et non par la méthode PUT dans ma classe .. sur hors écran, il Toujours lu comme « get demande". J'ai vérifié le journal du navigateur et confirme qu'ils ont envoyé la demande PUT correcte, donc je pense que j'ai manqué une configuration de ressort ici, mais je ne sais pas ce que c'est ..
Quelqu'un peut-il aider s'il vous plaît?
Merci.
EDIT: Code supplémentaire avec classe:
@Controller
@RequestMapping(value="/retail/{cid}/master/city")
public class City {
@RequestMapping(value="/foo1", method= RequestMethod.GET)
public String getCity(@PathVariable(value="cid") String cid, @RequestParam(value="State") Integer state, Model model) {
System.out.println("get request");
return "index";
}
@RequestMapping(value="/foo2", method= RequestMethod.PUT)
public String putCity(@PathVariable(value="cid") String cid, @RequestParam(value="State") Integer state, Model model) {
System.out.println("put request");
return "index";
}
}
EDIT2: Désolé, il semble que je ne l'ai pas très complet lors de l'examen du journal .. Je pris cet avertissement à deux reprises.
WARNING: Error in annotation processing: java.lang.NoClassDefFoundError: org/aopalliance/intercept/MethodInterceptor
des idées comment résoudre ce problème?
Si 'getCity' est invoqué, la requête est une méthode' GET'. Aucune configuration supplémentaire n'est requise, vous devez envoyer le mauvais type de demande. Êtes-vous sûr que votre client fait la bonne chose? – skaffman
oui .. Je suis sûr que le client faisait la bonne chose. Il était connecté à la console. Essayé avec chrome et firefox, et les deux ont envoyé la demande PUT. – Magician
Ajoutez un paramètre 'HttpServletRequest' à' getCity', puis connectez 'request.getMethod()' et voyez ce que cela signifie. – skaffman