【发布时间】:2013-09-06 19:54:36
【问题描述】:
我找到了很多关于如何设置 jersey 服务器以便它可以生成和使用 JAXB 绑定对象的示例,但是我很难找到如何让客户端发布相同的 JAXB 绑定对象的示例. This example shows how to do it with XML。我正在寻找一个展示如何使用 JSON 进行操作的工具。
我什至不确定这是否可行。 post 方法上的 javadoc 不明确。
我的帖子是这样的:
Client client = Client.create();
WebResource resource = client.resource(uri);
ClientResponse response = resource.type(MediaType.APPLICATION_JSON)
.post(ClientResponse.class, instanceWithXmlRootElementAnnotation);
当我尝试此操作时,我的服务器会收到请求,但 @FormParam 的字段始终作为 null 发送过来。这是我的服务器端方法的签名:
@POST
@Path("apath")
@Consumes(MediaType.APPLICATION_JSON)
public String postAPath(@FormParam("InstanceWithXmlRootElementAnnotation")
InstanceWithXmlRootElementAnnotation instanceWithXmlRootElementAnnotation) {
//instanceWithXmlRootElementAnnotation is always null
我想知道的其他事情是我是否应该使用instanceWithXmlRootElementAnnotation。如果这是一个传统的 web 服务,我会使用 JAXB 来生成一个对象,供客户端使用并通过生成的类发送。但是根据我从链接到的示例中收集到的信息,这个人发送的是源代码,而不是生成的类。
【问题讨论】:
-
InstanceWithXmlRootElementAnnotation 是您的自定义类,因为我找不到它的 jar。我仍在尝试找出使用球衣进行发布请求的方法。
-
@JatinSehgal 是的
-
所以,在客户端,我需要准备一个与我在自定义类中准备的属性相同的 json
标签: java rest jersey jersey-client jersey-1.0