java - 不支持 Spring Rest POST Json RequestBody 内容类型

当我尝试使用 post 方法发布新对象时。 RequestBody 无法识别 contentType。 Spring 已经配置好,POST 可以与其他对象一起使用,但不是这个特定的对象。

org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'application/json;charset=UTF-8' not supported

如果我尝试相同的请求,只需更改 requestbody 对象。它有效。

最佳答案

我找到了解决方案。 这是因为我有两个同名但类型不同的二传手。

我的类(class)有 id 属性 int,当我 hibernate 我的对象时,我将其替换为 Integer。

但显然,我忘了删除 setter,我有:

/**
 * @param id
 *            the id to set
 */
public void setId(int id) {
    this.id = id;
}

/**
 * @param id
 *            the id to set
 */
public void setId(Integer id) {
    this.id = id;
}

当我删除这个 setter 时,rest resquest 工作得很好。

打算抛出解码错误或反射(reflect)类错误。异常 HttpMediaTypeNotSupportedException 在这里接缝真的很奇怪。

我希望这个 stackoverflow 可以帮助其他人。

旁注

您可以检查您的 Spring 服务器 控制台以查看以下错误消息:

Failed to evaluate Jackson deserialization for type [simple type, class your.package.ClassName]: com.fasterxml.jackson.databind.JsonMappingException: Conflicting setter definitions for property "propertyname"

那么您可以确定您正在处理上述问题。

https://stackoverflow.com/questions/19444855/

相关文章:

python - 在 json 中发送 NaN

java - 从 JSONArray 转换为 String 然后再转换回来

java - 对象数组与对象对象

jquery - 将json加载到变量中

jquery - JSON解析错误语法错误意外结束输入

javascript - 从名称、值 JSON 数组中获取一项

json - 如何加密散列 JSON 对象?

javascript - 如何使用 JSON 数据填充选择框的选项?

ios - 如何在 Swift 中组合两个 Dictionary 实例?

java - jackson JSON : get node name from json-tree