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

新手上路,请多包涵

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

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

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

原文由 Thibaut 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 443
1 个回答

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

我的类有 id 属性 int,我在休眠我的对象时用 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 时,休息请求工作得很好。

Intead 抛出解组错误或反映类错误。 Exception HttpMediaTypeNotSupportedException 接缝在这里真的很奇怪。

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

边注

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

无法评估类型 [简单类型,类 your.package.ClassName] 的 Jackson 反序列化:com.fasterxml.jackson.databind.JsonMappingException:属性“propertyname”的设置器定义冲突

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

原文由 Thibaut 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题