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:
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:
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:
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:
Kann mir vielleicht jemand weiterhelfen?
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:
@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:
@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:
The server refused this request because the request entity is in a format not supported by the requested resource for the requested method.
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
Saved person: null null
Was die Fehlermeldung angeht, ich dachte eigentlich mit:
Code:
consumes="application/json"
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:
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: