gpt4 book ai didi

java - 将应用程序/xml POST 消息发送到 REST API 不起作用

转载 作者:行者123 更新时间:2023-11-29 05:45:59 25 4
gpt4 key购买 nike

这是带有 JAX-RS 注释的 POST 方法:

@POST
@Consumes(MediaType.APPLICATION_XML)
@Produces(MediaType.TEXT_PLAIN)
public Response storeUser(User user) {

boolean wasStored = JPAUserStore.storeUser(user);

if (wasStored) {
return Response.ok("User was stored.").build();
} else {
return Response.status(Status.BAD_REQUEST).build();
}

}

这是带有 JAXB 注释的用户类:

@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public User {

@XmlElement(name = "Name")
protected String name;

@XmlElement(name = "Address")
protected String address;

public void setName(String name) {
this.name = name;
}

public String getName() {
return this.name;
}

public void setAddress(String address) {
this.address = address;
}

public String getAddress() {
return this.address;
}

}

REST 网络服务在 Jetty 上运行。当我发送内容类型为“application/xml”和此正文的请求消息(使用 RESTClient Firefox 插件)时

 <?xml version="1.0" encoding="UTF-8"?>
<User>
<Name>Max</Name>
<Address>Main Street 12</Address>
</User>

将向适当的资源返回 400 Bad 请求。根据日志,未执行方法 JPAUserStore.storeUser(...)。

请问是什么原因,为什么@POST注解的方法不会执行,返回OK?

最佳答案

默认情况下,User 类的根元素是 user,您需要使用 @XmlRootElement(name="User")以匹配您的 XML 文档。

关于java - 将应用程序/xml POST 消息发送到 REST API 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15844712/

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