Входные данные AWS lamda не десериализованы - PullRequest
0 голосов
/ 30 апреля 2019

Я использую серверную среду для написания лямбда-функции AWS на Java.Мой класс обработчика выглядит следующим образом:

public class ConstructionHandler implements RequestHandler<Location, 
ApiGatewayResponse> {

    private static final Logger LOG = LogManager.getLogger(ConstructionHandler.class);

    @Override
    public ApiGatewayResponse handleRequest(Location input, Context context) {
        ObjectMapper objectMapper = new ObjectMapper();
        try {
            String locationJson = objectMapper.writeValueAsString(input);
            LOG.info("received: " + locationJson);
        } catch(Exception e) {
            LOG.error("Exception occurred here: " + e.getMessage());
            e.printStackTrace();
        }
        // do something useful
        // return response
    }

}

Мой объект местоположения - это простой POJO, описываемый следующим образом:

public class Location {

    private double x;

    private double y;

    public Location(double x, double y) {
        this.x = x;
        this.y = y;
    }

    public Location() {

    }

    public double getX() {
        return x;
    }

    public void setX(double x) {
        this.x = x;
    }

    public double getY() {
        return y;
    }

    public void setY(double y) {
        this.y = y;
    }

}

Lambda настроен в моем serverless.yml следующим образом:

functions:
  construct:
    handler: com.serverless.ConstructionHandler
    events:
      - http:
         path: /construct
         method: post

Я использовал плагин Chrome Postman для запуска POST-запроса к лямбде, после развертывания на AWS со следующим телом запроса:

{"x": 3.0, "y": 4.0}

К сожалению, если я зайду в Cloudwatch, в журнале будет десериализован следующий объект:

{"x": 0.0, "y": 0.0}

Кто-нибудь знает, почему первоначальные значения были потеряны?Заранее спасибо за любую помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...