在Java REST风格的Web服务(javax.ws..rs。*)Jersey中接收JSON对象
我有json contentType到glassfish服务器,我有java restful web服务安装程序的问题。
我使用针从Node.js POST:
var options = { json: true, headers: {'Content-Type':'application/json'} } needle.post(base_url+'priorityList/',priorityList,options, function(err, resp, body){ });
并与jersey接受:
@POST @Path("/priorityList/") @Consumes(MediaType.APPLICATION_JSON) //@Consumes("text/plain") @Produces(MediaType.APPLICATION_JSON) public JSONArray priorityList(JSONObject incomingJsonString)throws IOException { }
它在glassfish服务器上给我这个错误:
WARNING: StandardWrapperValve[com.mycompany.recommenderenginejava.ApplicationConfig]: Servlet.service() for servlet com.mycompany.recommenderenginejava.ApplicationConfig threw exception org.codehaus.jackson.map.exc.Unr`enter code here`ecognizedPropertyException: Unrecognized field "{"categories":["golf","banks"]}" (Class com.mycompany.recommenderenginejava.JSONObject), not marked as ignorable at [Source: org.glassfish.jersey.message.internal.EntityInputStream@4c0db744; line: 1, column: 43] (through reference chain: com.mycompany.recommenderenginejava.JSONObject["{"categories":["golf","banks"]}"]) at org.codehaus.jackson.map.exc.UnrecognizedPropertyException.from(UnrecognizedPropertyException.java:53) at org.codehaus.jackson.map.deser.StdDeserializationContext.unknownFieldException(StdDeserializationContext.java:267) at org.codehaus.jackson.map.deser.std.StdDeserializer.reportUnknownProperty(StdDeserializer.java:673)
这看起来应该是正确的格式,我明白了,并已经尝试了1000件事情来得到它的工作。
任何帮助是极大的赞赏
你需要发布com.mycompany.recommenderenginejava.JSONObject,如果你想要具体的build议,但答案是,JSON不匹配你试图parsing它的类。 JSON有一个字段(“类别”),在类定义中不作为公共字段或setter存在。