gpt4 book ai didi

java - jersey 客户端可以使用 JSON 将 JAXB 对象 POST 到服务器吗?

转载 作者:行者123 更新时间:2023-12-01 14:09:19 25 4
gpt4 key购买 nike

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

最佳答案

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

@POST
@Path("apath")
@Consumes(MediaType.APPLICATION_JSON)
public String postAPath(InstanceWithXmlRootElementAnnotation instanceWithXmlRootElementAnnotation) {

关于java - jersey 客户端可以使用 JSON 将 JAXB 对象 POST 到服务器吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18665617/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com