#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.