Почему JSON не изменился после того, как я добавил новые поля в POJO

#java #json #spring-boot #jackson #lombok

#java #json #spring-boot #джексон #ломбок

Вопрос:

Я добавил новые поля в POJO, ожидая найти их в ответ в моем приложении Spring Boot. Это простой POJO с аннотациями Lombok:

 @Getter
@Setter
@NoArgsConstructor
public class Responce implements AsyncResponse, Serializable {
    private String resultCode;
    private String errorCode; // added field

public Responce(String resultCode) {
    this.resultCode = resultCode;
    }
}
  

В моем методе обслуживания я создал object, а затем использовал установщик для добавления дополнительного поля ErrorCode:

 Responce response = new Responce("0");
responce.setErrorCode("777");
  

Но я все равно получаю JSON с одним полем:

 {
    resultCode: "0"
}
  

Как я могу принудительно включить новое поле?

UPD: AsyncResponse выглядит так

 public interface AsyncResponse {
    String getResultCode();
    void setResultCode(String resultCode);

    String getErrorCode(); // added getter
    void setErrorCode(String errorCode); // added setter
}
  

Комментарии:

1. можете ли вы показать этот AsyncResponse класс? или все аннотации Джексона, используемые в Responce и AsyncResponse

2. Вы пробовали чистить и перестраивать. ? или попробуйте что-нибудь еще, кроме errorCode

3. Вы используете встроенный tomcat spring boot? Можете ли вы проверить, обновлены ли файлы jar, созданные при компиляции?

4. @Deadpool в POJO нет аннотаций на используемом уровне класса, кроме упомянутых. В AsyncResponce также нет аннотаций.

5. @abs_dev это tomcat, правда. Мы используем Jenkins в нашем конвейере доставки, так что да, jar обновляется, насколько я знаю.

Ответ №1:

В приложении был установлен фильтр.yml в модуле шлюза, который не упоминал поля в параметре fieldsToRetain.