Часть моего объекта ответа для моей функции Lambda - это объект, содержащий 3 массива. Для любого данного экземпляра функции только один из них будет иметь любой контент. Я использовал аннотацию @JsonInclude (я попытался использовать ее на уровне класса и выше свойств или геттеров), чтобы сообщить ObjectMapper игнорировать пустые массивы при создании ответа. Это работает на моей локальной версии, ответ содержит только один массив с данными, но когда я его разворачиваю в свою действительную функцию AWS Lambda, аннотации игнорируются, а ответ содержит 3 массива, 2 из которых пустые. Код ниже:AWS Lambda: Jackson Аннотации игнорируются при создании ответа в размещенной версии
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
public class PcIODataSetString {
@JsonInclude(Include.NON_EMPTY)
private EventDef[] ttEventDefs;
@JsonInclude(Include.NON_EMPTY)
private EventTag[] ttEventTags;
@JsonInclude(Include.NON_EMPTY)
private EventObj[] ttEventObjs;
//getters and setters
}
Из того, что я прочитал я думаю, это может быть проблемой версии, так как я использую ДЖЕКСОН-аннотаций-2.6.0 и, возможно, AWS использует версию 1.x для лямбда-функции? Есть ли способ заставить AWS использовать ту же версию Jackson? Яркий сабвуфер 2.6.0 присутствует в библиотеке AWS SDK, которая поставляется в моей банке.