Spring JSON 请求返回 406(不可接受)
当尝试向 Spring MVC 控制器发送 JSON 请求时,一些用户遇到“406 不可接受”错误。此问题源于请求的内容类型(“application/json”)与控制器的响应能力不匹配。
在 Spring MVC 中,控制器方法用“@ResponseBody”注释,以表明返回值应以 JSON 形式写入 HTTP 响应正文。但是,如果没有在应用程序上下文中注册正确的 HTTPMessageConverter,Spring 将无法将返回值转换为请求的格式。
此错误的常见原因是应用程序中缺少 Jackson 库类路径。 Jackson 库提供了 HTTPMessageConverter 负责将 Java 对象转换为 JSON,反之亦然。
要解决此问题,请按照以下步骤操作:
确保以下 Jackson 库包含在应用程序类路径中:
如果您使用的是 Spring 3.0 或更高版本,请将以下行添加到 spring-servlet.xml 配置文件中以启用注释驱动的 MVC 配置:
<code class="xml"><mvc:annotation-driven /></code>
通过实现这些步骤,HTTPMessageConverter 将被注册,Spring 将能够按预期将控制器的返回值转换为 JSON .
以上是为什么在向 Spring MVC 控制器发送 JSON 请求时收到 406(不可接受)错误?的详细内容。更多信息请关注PHP中文网其他相关文章!