如何在不为休息服务中的 java 对象使用 @XmlRootElement 的情况下获取请求对象
how to get request object without using @XmlRootElement for java objects in rest services
我正在尝试使用 Apache CXF 和 Jackson 数据绑定生成休息服务。在这里我不想使用 @XmlRootElement 注释。当我尝试下面的代码时,请求对象就像一个空对象。
这是我的服务界面
@POST
@Path("/getusers/")
@Consumes("application/json")
@Produces("application/json")
public List<UserDetails> getusers(UserDetails userDetails) throws ServiceException;
这是我的域对象
public class UserDetails implements Serializable{
private String userName;
private int userId;
public UserDetails(){
}
//getters and setters...
}
Json 对象看起来像
{
"id" : "102",
"username" : "scott"
}
并且我收到请求对象的空指针异常
如何访问我的请求对象
注意:这里我使用的是Jackson Data-Binding
您的 JSON 包含 username
,而成员名为 userName
。此外,id
和 userId
是不同的。
你有三个选择:
- 更改
UserDetails
成员的名称以匹配 JSON 对象中的字段。
- 更改 JSON 对象的名称以匹配
UserDetails
的成员名称。
- 使用
@JsonProperty
配置要绑定到 UserDetails
成员的 JSON 对象名称。
我正在尝试使用 Apache CXF 和 Jackson 数据绑定生成休息服务。在这里我不想使用 @XmlRootElement 注释。当我尝试下面的代码时,请求对象就像一个空对象。
这是我的服务界面
@POST
@Path("/getusers/")
@Consumes("application/json")
@Produces("application/json")
public List<UserDetails> getusers(UserDetails userDetails) throws ServiceException;
这是我的域对象
public class UserDetails implements Serializable{
private String userName;
private int userId;
public UserDetails(){
}
//getters and setters...
}
Json 对象看起来像
{
"id" : "102",
"username" : "scott"
}
并且我收到请求对象的空指针异常
如何访问我的请求对象 注意:这里我使用的是Jackson Data-Binding
您的 JSON 包含 username
,而成员名为 userName
。此外,id
和 userId
是不同的。
你有三个选择:
- 更改
UserDetails
成员的名称以匹配 JSON 对象中的字段。 - 更改 JSON 对象的名称以匹配
UserDetails
的成员名称。 - 使用
@JsonProperty
配置要绑定到UserDetails
成员的 JSON 对象名称。