Spring MVC错误请求与@requestbody

科利莫尔

我有一个带有该签名的Spring MVC服务:

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

而这在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>

我执行一个Post请求,并始终向我返回400error-> Bad请求。我编写了一个过滤器来读取请求内容,并且是这样:

编辑json:

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

编辑:用户类

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;
}

有什么问题?

试金石

请删除参数化的构造函数,然后就可以了。:)

public User(String deviceRegid) {
  this.deviceRegistrationID = deviceRegid;
  this.online = true;
}

因为在数据绑定时会调用默认构造函数。

检查您的json数据:

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

验证以下内容:

  1. JSON名称是否与User类的字段名匹配

  2. 还要检查User类中相应的字段名称数据类型是否支持JSON

    尝试一下,我已经多次遇到相同的问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

空请求主体不会被Spring @RequestBody @Valid注释捕获

来自分类Dev

Spring MVC- REST POST-错误请求400

来自分类Dev

Spring MVC Ajax 400错误请求

来自分类Dev

Spring MVC发布请求

来自分类Dev

Spring MVC @RequestBody如何工作

来自分类Dev

Spring MVC 404错误http请求

来自分类Dev

Spring MVC 400错误请求Ajax

来自分类Dev

Spring MVC @RequestBody插入接口而不是类

来自分类Dev

400(错误请求)错误-使用JQuery AJAX上传Spring MVC文件

来自分类Dev

Spring MVC处理AJAX请求

来自分类Dev

Spring MVC:发布请求和带有数组的json对象:错误请求

来自分类Dev

在Spring MVC中对@RequestBody使用通用类型时出现“参数类型不匹配”错误

来自分类Dev

Spring MVC“请求处理失败” 500错误

来自分类Dev

使用@RequestBody List <?>的Spring MVC REST在语法上返回HTTP 400错误

来自分类Dev

Spring MVC @ModelAttribute方法返回“错误请求” 400

来自分类Dev

Spring MVC Rest Controller @RequestBody解析

来自分类Dev

Spring Boot,Spring MVC JSON RequestBody:未知属性被忽略

来自分类Dev

Ajax调用Spring MVC Controler错误的请求

来自分类Dev

Spring MVC发布请求

来自分类Dev

Spring MVC 3.2 Jackson错误请求

来自分类Dev

Spring MVC 404错误http请求

来自分类Dev

Spring MVC JSP错误

来自分类Dev

Spring MVC“请求处理失败” 500错误

来自分类Dev

Spring MVC请求处理错误(404)

来自分类Dev

Spring MVC验证错误

来自分类Dev

Spring MVC @RequestBody映射可选<Enum>

来自分类Dev

Spring MVC AJAX错误请求错误

来自分类Dev

从Ajax到Spring MVC的请求。404错误

来自分类Dev

Ajax调用Spring MVC Controler错误的请求