0

我找到了很多关于如何设置球衣服务器以便它可以生成和使用 JAXB 绑定对象的示例,但是我很难找到如何让客户端发布相同的 JAXB 绑定对象的示例。 这个例子展示了如何使用 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生成一个对象供客户端使用并通过生成的类发送。但是根据我从链接到的示例中收集到的信息,这个人发送的是源代码,而不是生成的类。

4

1 回答 1

1

我自己想通了。问题是服务器端问题。一旦我删除了@FormParam服务器上的注释,一切都按预期工作。结合的问题和答案将为其他人提供基本教程。我的服务器现在看起来像:

@POST
@Path("apath")
@Consumes(MediaType.APPLICATION_JSON)
public String postAPath(InstanceWithXmlRootElementAnnotation instanceWithXmlRootElementAnnotation) {
于 2013-09-06T19:56:12.957 回答