首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jackson - jackson解析器不解析json

jackson - jackson解析器不解析json
EN

Stack Overflow用户
提问于 2015-03-09 21:14:01
回答 2查看 521关注 0票数 0

我已经编写了一个小的web服务,并且我正在传递一个JSON。在发送请求时,RESTClient会说:Status Code: 415 Unsupported Media Type,我想我已经放入了头部Content-Type: application/json。

我在服务器端收到的错误消息是:

代码语言:javascript
复制
    [ERROR   ] A message body reader for Java class com.udm.jsons.JSON_Device, and Java type class com.udm.jsons.JSON_Device, and MIME media type application/json; charset=UTF-8 was not found.
The registered message body readers compatible with the MIME media type are:
application/json; charset=UTF-8 ->
  com.sun.jersey.json.impl.provider.entity.JSONJAXBElementProvider$App
  com.sun.jersey.json.impl.provider.entity.JSONArrayProvider$App
  com.sun.jersey.json.impl.provider.entity.JSONObjectProvider$App
  com.sun.jersey.json.impl.provider.entity.JSONRootElementProvider$App
  com.sun.jersey.json.impl.provider.entity.JSONListElementProvider$App
*/* ->
  com.sun.jersey.core.impl.provider.entity.FormProvider
  com.sun.jersey.core.impl.provider.entity.StringProvider
  com.sun.jersey.core.impl.provider.entity.ByteArrayProvider
  com.sun.jersey.core.impl.provider.entity.FileProvider
  com.sun.jersey.core.impl.provider.entity.InputStreamProvider
  com.sun.jersey.core.impl.provider.entity.DataSourceProvider
  com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider$General
  com.sun.jersey.core.impl.provider.entity.ReaderProvider
  com.sun.jersey.core.impl.provider.entity.DocumentProvider
  com.sun.jersey.core.impl.provider.entity.SourceProvider$StreamSourceReader
  com.sun.jersey.core.impl.provider.entity.SourceProvider$SAXSourceReader
  com.sun.jersey.core.impl.provider.entity.SourceProvider$DOMSourceReader
  com.sun.jersey.json.impl.provider.entity.JSONJAXBElementProvider$General
  com.sun.jersey.json.impl.provider.entity.JSONArrayProvider$General
  com.sun.jersey.json.impl.provider.entity.JSONObjectProvider$General
  com.sun.jersey.core.impl.provider.entity.XMLRootElementProvider$General
  com.sun.jersey.core.impl.provider.entity.XMLListElementProvider$General
  com.sun.jersey.core.impl.provider.entity.XMLRootObjectProvider$General
  com.sun.jersey.core.impl.provider.entity.EntityHolderReader
  com.sun.jersey.json.impl.provider.entity.JSONRootElementProvider$General
  com.sun.jersey.json.impl.provider.entity.JSONListElementProvider$General
  com.sun.jersey.json.impl.provider.entity.JacksonProviderProxy

我在服务器端也使用了正确的格式:

代码语言:javascript
复制
@Path("/initiateProvisioning")
@POST
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public ResponseInfo initiateProvisioning(JSON_Device device)

而且我已经生成了杰克逊使用的POJO使用jsonschema2pojo.org.Please帮助,我被困在安静!

EN

回答 2

Stack Overflow用户

发布于 2015-03-09 22:30:59

如果没有向REST服务发送完整的请求,我只能做一些假设。检查报头和有效负载是否采用UTF-8编码。此外,有效负载必须类似于{...}

票数 0
EN

Stack Overflow用户

发布于 2015-03-10 20:41:41

据我所知,您正在从客户端发布JSON有效负载,并试图在您的一个资源方法中以POJO的形式接收它。要实现这一点,您需要一个MessageBodyReader。此接口的实现将包含将原始(JSON)输入流转换为POJO (JSON_Device)的逻辑。JAX-RS运行时将在将要调用您的方法并将返回的对象注入到您的方法(initiateProvisioning)参数中时自动调用此函数

JAX-RS javadocs - http://docs.oracle.com/javaee/6/api/javax/ws/rs/ext/MessageBodyReader.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28942895

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档