Java 邮寄至泽西岛服务
我试图在传递json对象时调用post方法,但当我打印对象时,它是单位化的 我在做类似的事情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
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不存在。