배경

문제상황

public void handleSubmissionEvent(String message) throws JsonProcessingException {
    KafkaMessage kafkaMessage = objectMapper.readValue(message, KafkaMessage.class);

    SubmissionKafkaEvent event = objectMapper.readValue( // payload 역직렬화
        kafkaMessage.getPayload(),
        SubmissionKafkaEvent.class
    );
    event.setMessageId(kafkaMessage.getMessageId());

    notificationService.createNotificationFromSubmissionEvent(event);
  }

해결방안

시도

public void handleSubmissionEvent(String message) {
    try {
      KafkaMessage kafkaMessage = objectMapper.readValue(message, KafkaMessage.class);

      SubmissionKafkaEvent event = objectMapper.readValue( // payload 역직렬화
          kafkaMessage.getPayload(),
          SubmissionKafkaEvent.class
      );
      event.setMessageId(kafkaMessage.getMessageId());

      notificationService.createNotificationFromSubmissionEvent(event);
    } catch (JsonProcessingException e) {
      log.error("Failed to process kafka message: {}", message, e);

      throw new GlobalException(ErrorCode.EXTERNAL_SERVICE_ERROR, e.getMessage());
    }
  }

결과