簡體   English   中英

Jersey REST請求對象更改

[英]Jersey REST request object change

我的客戶端和服務器對POST使用以下請求對象:

class Person{

    String name = "";

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

    public String getName(){
        return name;
    }

}

現在,我服務器的請求對象已更改為包含年齡-

class Person{
    String name = "";
    int age = 0;

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

    public String getName(){
        return name;
    }

    public void setAge(int age){
        this.age = age;
    }

    public int getAge(){
        return age;
    }
}

同樣,服務器的響應對象還包括現在的年齡。

舊客戶端與新服務器不兼容,由於InvocationTargetException ,引發了400錯誤的請求。

服務器是否可以接受舊請求並將空字段設置為默認值?

如果使用的是json,則可以將json框架設置為忽略未知字段

在客戶端:

import org.codehaus.jackson.annotate.JsonIgnoreProperties;
@JsonIgnoreProperties(ignoreUnknown = true)

要么

// jackson 1.9 and before
objectMapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
// or jackson 2.0
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);

在服務器端

jackson 1.x
    @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)

要么

jackson 2.x
    @JsonInclude(Include.NON_NULL)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM