sendSimpeMessage возвращает 500 - PullRequest
0 голосов
/ 30 октября 2019

Я полагаю, у меня есть проблема с конечной точкой моего текущего контроллера. Я пытаюсь отправить электронное письмо с использованием JavaMailSender.

Приведенный ниже пример отлично работает при отправке жестко закодированных строковых значений.

    @RequestMapping("/sendhc")
    public void sendSimpleMessage() {
        SimpleMailMessage message = new SimpleMailMessage();
        message.setTo("firstname.lastname@gmail.com");
        message.setSubject("subject");
        message.setText("text");
        emailSender.send(message);
    }

Я хочу сделать запрос со значениямивместо примера жестко закодированной строки, как показано выше. При публикации я получаю исключение NullPointerException.

    @RequestMapping("/send")
    public void sendSimpleMessage(String to, String subject, String text) {
        SimpleMailMessage message = new SimpleMailMessage();
        message.setTo(to);
        message.setSubject(subject);
        message.setText(text);
        emailSender.send(message);
    }

enter image description here

Я пытаюсь POST к localhost:8080/send со следующими значениями: (как показанона изображении выше)

{ "to":"email@gmail.com", "Subject":"New Errand", "text":"loremloremloremloremlorem" }

Любые предложения о том, где я мог ошибиться, очень ценятся.

1 Ответ

1 голос
/ 30 октября 2019

Если вы отправляете параметры в виде JSON в теле запроса, вам необходимо указать это в запросе, а затем преобразовать в Java, например:

@RequestMapping("/send")
public void sendSimpleMessage(@RequestBody String json) {
   // convert json to Java DTO class using e.g. flexjson.JSONDeserialier   

Поочередно, вместо отправки вВ теле можно указать переменные пути:

@RequestMapping("/send/to/{to}/subject/{subject}/text/{text}")
public void sendSimpleMessage(@PathVariable("to") String to, @PathVariable("subject") String subject, @PathVariable("text") String text,) {
...