Обработчик Nginx-clojure Java

#nginx

#nginx

Вопрос:

Я пытаюсь захватить тело запроса в моем обработчике java nginx, по какой-то причине я получаю исключение нулевого указателя. Как нам захватить тело в обработчике Java?

 public Object[] invoke(Map<String, Object> request) {
        InputStream is = (InputStream) request.get(Constants.BODY);
        String abc = getIdFromBody(is)
        if(abc !=null)
         {  return Constants.PHASE_DONE;}
   }



private String getIdFromBody(InputStream is) {
        ObjectNode node;
        String text = null ;
        try {
             text = IOUtils.toString(is, StandardCharsets.UTF_8.name());
            logger.info("requestPayload={}", text);
          
         }

         catch (IOException e) {
            e.printStackTrace();
        }

        logger.info("didnt get entity_id ", text);
         return text;
    }
  

Ответ №1:

Кажется, вы используете обработчик содержимого, поэтому вы должны возвращать обычный ответ вместо констант.ФАЗА_ДОНА.

Константы.PHASE_DONE используется в обработчике, не относящемся к контенту, например, фильтр заголовка, фильтр тела, обработчик доступа, обработчик перезаписи.