0

私の問題:

レストキット 0.20 を使用して、iphone アプリケーション内にレスト クライアントを構築しました。私の RESTService は、jackson を含む jax-rs で構築されました。

「Customer」という名前のクラスが 1 つあります。ここに顧客データを保持します。

@XmlRootElement                                
public class Customer extends BaseEntity {

private int customer_id;
private String appell;
private String firstname;
private String lastname;
private Date birthday;
private String street;
private String streetnr;
private String zipcode;
private String place;

public int getCustomer_id() {
    return customer_id;
}

public void setCustomer_id(int customer_id) {
    this.customer_id = customer_id;
}

public String getAppell() {
    return appell;
}

public void setAppell(String appell) {
    this.appell = appell;
}

public String getFirstname() {
    return firstname;
}

public void setFirstname(String firstname) {
    this.firstname = firstname;
}

public String getLastname() {
    return lastname;
}

public void setLastname(String lastname) {
    this.lastname = lastname;
}

public Date getBirthday() {
    return birthday;
}

public void setBirthday(Date birthday) {
    this.birthday = birthday;
}

public String getStreet() {
    return street;
}
public void setStreet(String street) {
    this.street = street;
}
public String getStreetnr() {
    return streetnr;
}
public void setStreetnr(String streetnr) {
    this.streetnr = streetnr;
}
public String getZipcode() {
    return zipcode;
}
public void setZipcode(String zipcode) {
    this.zipcode = zipcode;
}
public String getPlace() {
    return place;
}
public void setPlace(String place) {
    this.place = place;
}

私に何ができる?RestKit に常にこのエラーが記録される理由:

Expected status code in (200-299), got 400" UserInfo=0x956e2f0 {NSLocalizedRecoverySuggestion=Unrecognized field "customer" (Class customer.model.Customer), not marked as ignorable

顧客という名前のフィールドがありません。

これが私の POST メソッドです。

@POST
@Path("/insert")
@Consumes(MediaType.APPLICATION_JSON)
public Response insertCustomer(Customer customer) {
    String result = "Customer inserted " + customer.getLastname();
    customer.createEntity();
    return Response.status(201).type(MediaType.APPLICATION_JSON).entity(result).build();
}

これは、iOS アプリケーション内で @GET メソッドが呼び出されたときに生成される JSON オブジェクト (Jackson) の例です。

 {
"appell": "Frau",
"birthday": "1991-10-01T00:00:00+01:00",
"customer_id": "3",
"firstname": "Max",
"lastname": "Mustermann",
"place": "München",
"street": "Einsteinweg",
"streetnr": "19",
"zipcode": "81858"

}

これは、iOS アプリケーションが示された @POST メソッドを呼び出すときの JSON オブジェクトの例です。

{"customer":{"streetnr":"19",
 "zipcode":"81829",
 "customer_id":0,
 "place":"München",
 "appell":"Herr",
 "firstname":"Heinrich",
 "birthday":"1991-10-01T00:00:00+01:00",
 "lastname":"Maier",
 "street":"Lehrer-Wirth-Str.19"}}

私は、restkit と jax-rs を使用するまったくの初心者です。

xml 形式を要求するための @GET メソッドを追加しました。ここでそれを見ることができます:

@GET
@Path("/listallcustomers")
@Produces(MediaType.APPLICATION_XML)
public ArrayList<Customer> showAllCustomers() {
    ArrayList<Customer> list = DBAccess.getInstance().getAllCustomers();
    return list;
}

これが結果です。

<customers>
  <customer>
  <appell>Frau</appell>
  <birthday>1991-10-01T00:00:00+01:00</birthday>
  <customer_id>3</customer_id>
  <firstname>Max</firstname>
  <lastname>MUstermann</lastname>
  <place>München</place>
  <street>Einsteinstr.</street>
  <streetnr>19</streetnr>
  <zipcode>82838</zipcode>
</customer>
  ...

JSON オブジェクトを作成する @GET メソッドは次のとおりです。

@GET
@Path("/listall")
@Produces(MediaType.APPLICATION_JSON)
public ArrayList<Customer> showAllJsonCustomers() {
    ArrayList<Customer> list = DBAccess.getInstance().getAllCustomers();
    return list;
}

これは、作成する JSON オブジェクトの例です。

{
"lastname": "Müller",
"customer_id": 6,
"appell": "Herr",
"firstname": "pupsi",
"birthday": "1986-10-16",
"street": "Lehrer-Wirth-Str",
"streetnr": "19",
"zipcode": "81829",
"place": "München"
},
...
4

0 に答える 0