Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.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 邮寄至泽西岛服务_Java_Json_Rest_Jersey - Fatal编程技术网

Java 邮寄至泽西岛服务

Java 邮寄至泽西岛服务,java,json,rest,jersey,Java,Json,Rest,Jersey,我试图在传递json对象时调用post方法,但当我打印对象时,它是单位化的 我在做类似的事情 curl-X POST-H'内容类型:application/json'-d'{“distributors”:{“distributorId”:“5”,“name”:“SA”}{path} 以下是Java代码: package com.rest.resource; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.an

我试图在传递json对象时调用post方法,但当我打印对象时,它是单位化的

我在做类似的事情
curl-X POST-H'内容类型:application/json'-d'{“distributors”:{“distributorId”:“5”,“name”:“SA”}{path}

以下是Java代码:

package com.rest.resource;

import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement(name = "distributors")
public class Distributor
   {
   @XmlElement
   private long   distributorId;
   @XmlElement
   private String name;

   public Distributor()
      {
      }

   public Distributor(final long distributorId,final String name)
      {
      this.distributorId = distributorId;
      this.name = name;
      }
   @Override
   public String toString()
      {
      return "distributors: {distributorId = " + distributorId + ", name = " + name + "}";
      }
   }
资源中的方法

@POST
   @Path("")
   public Response addDistributor(final JAXBElement<Distributor> element)
      {
      final Distributor distributor = element.getValue();
      System.out.println(distributor);
      return Response.status(200).entity(distributor.toString()).build();
      }
@POST
@路径(“”)
公共响应addDistributor(最终JAXBElement元素)
{
最终分配器分配器=element.getValue();
System.out.println(分销商);
返回Response.status(200).entity(distributor.toString()).build();
}

谢谢。

我所做的就是更改退货类型,如下所示:

@POST
@Path("/distpost")
@Produces(MediaType.APPLICATION_JSON)
public Response addDistributor(final Distributor distributor) {
    System.out.println(distributor);
    return Response.status(201).entity(distributor.toString()).build();
}
curl -X POST -H 'Content-Type: application/json' -d '{"distributor": {"distributorId":5,"name":"SA"}}' <url>
它处理的卷曲测试如下:

@POST
@Path("/distpost")
@Produces(MediaType.APPLICATION_JSON)
public Response addDistributor(final Distributor distributor) {
    System.out.println(distributor);
    return Response.status(201).entity(distributor.toString()).build();
}
curl -X POST -H 'Content-Type: application/json' -d '{"distributor": {"distributorId":5,"name":"SA"}}' <url>
curl-xpost-H'内容类型:application/json'-d'{“distributor”:{“distributor ID”:5,“name”:“SA”}

奇怪的是,使用Jersey 1.3它对我来说非常适合,任何1.4或更高版本似乎都无法正常工作。使用1.3,我在控制台中获得了
分发服务器:{distributorId=5,name=SA}
。嘿,即使使用Jersey 1.3,也没有任何变化。如果我将
JAXBElement元素
更改回刚才的
分发服务器
,它对我有效。否则我会得到:
JSONMappingException:找不到合适的构造函数
你能把你的项目发送给我吗?在你的评论之后,我已经尝试了这个方法,Jersey版本是1.3,但在加载我的Apache时,我抱怨一些Servlet不存在。