java – GAE Jersey RESTful服务POST JSON
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – GAE Jersey RESTful服务POST JSON,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2339字,纯文字阅读大概需要4分钟。
内容图文
![java – GAE Jersey RESTful服务POST JSON](/upload/InfoBanner/zyjiaocheng/798/d07ca9a742ec4b76aac023f1af88be94.jpg)
我正在尝试编写一个服务,它将在POST请求中接受JSON或XML对象.我已经成功编写了一个GET请求处理程序,该处理程序将按照标题的accept中的请求将我的对象作为XML或JSON返回.当我使用JSON作为请求主体POST到服务时,我的POST方法中的Java对象没有填充json中的值.
@POST
@Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
public void postUser(@Context HttpServletRequest Req, User user)
{
PersistenceManager pm = PMF.get().getPersistenceManager();
try
{
pm.makePersistent(user);
}
finally
{
pm.close();
}
}
当我在POST方法中断时,User类型的Java对象“user”具有属性的空值.该对象本身不是null,只是属性.
这是POST提交的JSON
{"user":{"logon":"kevin","password":"password","personid":"xyz"}}
这是我的课
package com.afalon.cloud.contracts;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.jdo.annotations.Extension;
import javax.jdo.annotations.IdGeneratorStrategy;
import javax.jdo.annotations.PersistenceCapable;
import javax.jdo.annotations.Persistent;
import javax.jdo.annotations.PrimaryKey;
@PersistenceCapable
@XmlRootElement(name = "user")
@XmlAccessorType(XmlAccessType.NONE)
public class User {
@Persistent
@XmlElement(name="logon")
private String logon;
@Persistent
@XmlElement(name="password")
private String password;
@Persistent
@XmlElement(name="personid")
private String personid;
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
@Extension(vendorName="datanucleus", key="gae.encoded-pk", value="true")
@XmlElement(name="userid")
private String userid;
public User () {}
public void setLogOn(String value) {
logon = value;
}
public String getLogOn() {
return logon;
}
public void setPassword(String value) {
password = value;
}
public String getPassword() {
return password;
}
public void setPersonId(String value) {
personid = value;
}
public String getPersonId() {
return personid;
}
public String getUserId() {
return userid;
}
解决方法:
也许没有人回答我的问题,因为问题有这么明显的解决方案!
我发现自己的错误后,我可以回答我自己的问题.
我提交的JSON正文被格式化为User对象列表,所以如果我编辑
{"user":{"logon":"kevin","password":"password","personid":"xyz"}}
至
{"logon":"kevin","password":"password","personid":"xyz"}
一切正常,因为我的@POST处理程序不期望用户对象列表.另外,我可以调整我的@POST处理程序来接受List< User>参数!
内容总结
以上是互联网集市为您收集整理的java – GAE Jersey RESTful服务POST JSON全部内容,希望文章能够帮你解决java – GAE Jersey RESTful服务POST JSON所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。