Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java jackson-jackson解析器不解析json_Java_Json_Jersey_Jackson_Jax Rs - Fatal编程技术网

Java jackson-jackson解析器不解析json

Java jackson-jackson解析器不解析json,java,json,jersey,jackson,jax-rs,Java,Json,Jersey,Jackson,Jax Rs,我已经编写了一个小型web服务,并且正在传递一个JSON。在发送请求时,RESTClient说:状态代码:415不支持的媒体类型,我想我已经将标题内容类型设置为:application/json 我在服务器端收到的错误消息是: [ERROR ] A message body reader for Java class com.udm.jsons.JSON_Device, and Java type class com.udm.jsons.JSON_Device, and MIME m

我已经编写了一个小型web服务,并且正在传递一个JSON。在发送请求时,RESTClient说:状态代码:415不支持的媒体类型,我想我已经将标题内容类型设置为:application/json

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

    [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
我在服务器端也使用了正确的格式:

@Path("/initiateProvisioning")
@POST
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public ResponseInfo initiateProvisioning(JSON_Device device)

我已经为jackson使用jsonschema2pojo.org生成了POJO。请帮助,我一直在等待安静

如果没有发送给REST服务的完整请求,我只能做出假设。检查报头和有效负载是否为UTF-8编码。另外,有效负载必须是类似于{…}

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


JAX-RS javadocs-

1添加此Maven依赖项com.sun.jersey:jersey json:${version}2 3报告结果为什么要标记jersey 2?该错误推断您正在使用Jersey 1。我没有使用Maven,很抱歉,我将更改标记。您知道如何使用Maven吗?您有权访问它吗?如果是这样的话,创建新的Maven项目并添加该依赖项,然后查看它引入的所有内容。将它们复制到您的projecti验证了来自jsonlint.com的有效负载,有效负载是正确的,但是如何在UTF-8中对其进行编码,您能解释一下吗