簡體   English   中英

傑克遜-傑克遜解析器未解析json

[英]jackson - jackson parser not parsing the json

我已經編寫了一個小型Web服務,並且正在傳遞JSON。 在發送請求時,RESTClient會說: Status Code: 415 Unsupported Media Type ,以為我已將標題設置為Content-Type: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)

我已經生成了供傑克遜使用的jsonschema2pojo.org的POJO,請幫助,我被困在安靜中了!!!

沒有完整的請求發送到REST服務,我只能做個假設。 檢查標頭和有效載荷是否為UTF-8編碼。 此外,有效負載只能是{...}

據我了解,您正在從客戶端發布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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM