Spring mvc mauvaise demande avec @requestbody

j'ai un Spring MVC service avec cette signature:

@RequestMapping(method = RequestMethod.POST, value = "/addUser", consumes = "application/json")
    public @ResponseBody User addUser(@RequestBody User user) {

Et ce dans context.xml

<bean id="jacksonMessageConverter"
        class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean>
    <bean
        class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
        <property name="messageConverters">
            <list>
                <ref bean="jacksonMessageConverter" />
            </list>
        </property>
    </bean>

- Je faire une requête Post et toujours me rendre un 400error->Bad request.
J'écris un filtre pour lire le contenu de demande et, est-ce:

Modifier json:

{
    "email": "Anchor",
    "latitude": 40.3139461,
    "longitude": -3.8810229,
    "name": "a",
    "online": true,
    "password": "a",
    "deviceRegId": "APA91bGnD1EuqEm9cpoHsenC-HEphQJRniEnhPovK24QkKkLBXrDesSCP6CFlyOKwR1huwSI28Wd-DdN0N8MDKle7myYB7Dznzc3Z11ZOv3jMlJEIegykpnnnYScrElw2czQEa4pKFeQW7BklUsUS-IB15LMqH_Ag"
}

Edit: L'utilisateur de la classe

public class User implements Serializable{
@JsonProperty("deviceRegId")
private java.lang.String deviceRegistrationID;
@JsonProperty("email")
private java.lang.String email;
@JsonProperty("latitude")
private java.lang.Double latitude;
@JsonProperty("longitude")
private java.lang.Double longitude;
@JsonProperty("name")
private java.lang.String name;
@JsonProperty("online")
private java.lang.Boolean online;
@JsonProperty("password")
private java.lang.String password;
public User(String deviceRegid) {
this.deviceRegistrationID = deviceRegid;
this.online = true;
}
public java.lang.String getDeviceRegistrationID() {
return deviceRegistrationID;
}
public java.lang.String getEmail() {
return email;
}
public void setEmail(java.lang.String email) {
this.email = email;
}
public java.lang.Double getLatitude() {
return latitude;
}
public void setLatitude(java.lang.Double latitude) {
this.latitude = latitude;
}
public java.lang.Double getLongitude() {
return longitude;
}
public void setLongitude(java.lang.Double longitude) {
this.longitude = longitude;
}
public java.lang.String getName() {
return name;
}
public void setName(java.lang.String name) {
this.name = name;
}
public java.lang.Boolean getOnline() {
return online;
}
public void setOnline(java.lang.Boolean online) {
this.online = online;
}
/**
* @return value or {@code null} for none
*/
public java.lang.String getPassword() {
return password;
}
/**
* @param password
*            password or {@code null} for none
*/
public void setPassword(java.lang.String password) {
this.password = password;
}

Quel est le problème?

source d'informationauteur colymore