Spring REST @RequestBody HTTP Error 415

Dieses Thema Spring REST @RequestBody HTTP Error 415 im Forum "Application Tier" wurde erstellt von Mary, 8. Apr. 2015.

Thema: Spring REST @RequestBody HTTP Error 415 Hi, ich versuche mich an REST mit Spring MVC. Ich hatte klein angefangen mit einem GET mit einigen...

  1. Hi,

    ich versuche mich an REST mit Spring MVC.
    Ich hatte klein angefangen mit einem GET mit einigen RequestParametern. Das hatte auch prima funktioniert.
    Hier mal mein Beispiel:

    Code (Text):

    @ResponseBody
    @RequestMapping(value = "send/", method = RequestMethod.GET)
    public void getName(
        @RequestParam("firstname") String firstname,
        @RequestParam("lastname") String lastname,
        Model model, HttpServletRequest request){
             
              System.out.println("Firstname: " + firstname);
              System.out.println("Lastname: " + lastname);
    }
     
    konnte ich prima über
    'http://localhost:8080/MyFirstREST/send/firstname=VornameA&lastname=Nachname'
    aufrufen und alles hatte funnktioniert.

    Jetzt habe ich allerdings ziemlich viele Parameter die ich übergeben will, daher wollte ich das nun über ein JSON machen.
    Das habe ich leider nicht mehr hinbekommen. Habe einiges ausprobiert. Hier mal mein bisheriger Beispielcode:

    Code (Text):

    @RequestMapping(value = "send/", method = RequestMethod.POST, produces="application/json", consumes="application/json")
    public @ResponseBody JsonResponse getNameJson(@RequestBody  Person person) {
           
        System.out.println("Saved person: " + person.getFname() +" "+ person.getLname());
           
        return new JsonResponse("OK","");
    }
     
    Hier bekomme ich im Browser nun immer den Fehler 415:

    Ich hatte schon versucht das iwie zu lösen. Habe Antworten gefunden dass man den jackson-mapper im Classpath braucht, dass man <mvc:annotation-driven/> in der application-Context.xml einstellen muss. Hat alles nicht geholfen.

    Mit @ModelAttribute hab ichs auch schon versucht, da gibts zwar keinen Fehler, aber iwie wird nichts übertragen, also das System.out liefert dann
    Was die Fehlermeldung angeht, ich dachte eigentlich mit:
    Code (Text):
    consumes="application/json"
    hätte ich eingestellt, dass der eben JSON akzeptiert?


    Zum Testen benutze ich das AddOn HttpRequester von Firefox. Hier nehme ich einfach die Adresse:
    'http://localhost:8080/MyFirstREST/send/'
    und im Content Bereich gebe ich:
    {fname:"my_firstname" , lname:"my_lastname"}
    ein.

    Mein Person-Objekt sieht wie folgt aus:
    Code (Text):

    public class Person {
        public String fname;
        public String lname;

        public String getFname() {
            return fname;
        }
        public void setFname(String fname) {
            this.fname = fname;
        }
        public String getLname() {
            return lname;
        }
        public void setLname(String lname) {
            this.lname = lname;
        }
    }

    Kann mir vielleicht jemand weiterhelfen?
     
    Zuletzt bearbeitet: 8. Apr. 2015
  2. Vielleicht helfen dir diese Java-Grundlagen weiter --> *Klick*
  3. Welchen Applikationsserver nutzt du und welche Implementierung von JAX-RS?