POSTリクエストでJSONオブジェクトまたはXMLオブジェクトを受け入れるサービスを作成しようとしています。私は正常にヘッダーの受け入れで要求されたXMLまたはJSONとして私のオブジェクトを返すGET要求ハンドラを書いている。リクエストの本文としてJSONを使用してサービスにPOSTすると、POSTメソッドのJava Objectがjsonの値で埋められません。GAE Jersey RESTfulサービスPOST 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メソッドタイプユーザーのJavaオブジェクト「利用者」でブレイクプロパティのnull値を持っています。オブジェクトはnullではなく、プロパティのみです。
これは、POST
{"user":{"logon":"kevin","password":"password","personid":"xyz"}}
から提出されたJSONされており、ここでの問題は、このような明白な解決策を持っているので、私のクラスは
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;
}
実際には、「User」というプロパティを持つオブジェクトを「User」という名前で投稿していました。オブジェクトは{}で、配列は[]で表されます。リスト自体はありません。 –