Le corps de la requête Spring JSON n'est pas mappé sur Java POJO

Je suis en utilisant le Printemps pour mettre en œuvre un service web RESTful. L'un des points de terminaison prend dans une chaîne JSON comme du corps de la requête et je souhaite le faire correspondre à un POJO. Toutefois, il semble maintenant que le passé-chaîne JSON n'est pas bien mappé à la POJO.

voici le @RestController interface

@RequestMapping(value="/send", headers="Accept=application/json", method=RequestMethod.POST)
public void sendEmails(@RequestBody CustomerInfo customerInfo);

le modèle de données

public class CustomerInfo {
    private String firstname;
    private String lastname; 
    public CustomerInfo() {
        this.firstname = "first";
        this.lastname = "last";
    }

    public CustomerInfo(String firstname, String lastname)
    {
        this.firstname = firstname;
        this.lastname = lastname;
    }

    public String getFirstname(){
        return firstname;
    }

    public void setFirstname(String firstname){
        this.firstname = firstname;
    }

    public String getLastname(){
        return lastname;
    }

    public void getLastname(String lastname){
        this.lastname = lastname;
    }
}

Et enfin mon POST demande:

{"CustomerInfo":{"firstname":"xyz","lastname":"XYZ"}}

avec le Type de Contenu spécifié à l'application/json

Cependant, quand j'imprime la valeur de l'objet, la valeur par défaut("premier" et "dernier") se sont imprimées au lieu de la valeur que j'ai passé("xyz" et "XYZ")

Personne ne sait pourquoi je n'obtiens pas le résultat que j'attendais.

FIXER

Donc il s'est avéré que, la valeur du corps de la requête n'est pas passé parce que j'ai besoin d'avoir l' @RequestBody annotation, non seulement dans mon interface, mais dans la méthode de la mise en œuvre. Une fois que j'ai que les, le problème est résolu.

source d'informationauteur Y. Chen