Я написал очень простой EmailService, используя Spring boot.
Контроллер получил EmailRequest и отправил Mail:
@RestController
@Slf4j
public class EmailController {
private final EmailService emailService;
public EmailController(EmailService emailService) {
this.emailService = emailService;
}
@PostMapping
public ResponseEntity sendEmail(EmailRequest request) {
try {
emailService.sendEmail(request);
} catch (Exception e) {
log.error("Error while sending email", e);
return ResponseEntity.badRequest().build();
}
return ResponseEntity.ok().build();
}
}
Я хочу проверить поведение в другом контроллере следующим образом:
@Controller
public class TestController {
@GetMapping
public ResponseEntity testSend(){
EmailRequest request = new EmailRequest();
request.setTo("roger@example.com");
request.setBody("This is the body");
request.setSubject("This is a subject");
return new RestTemplate().postForObject("http://localhost:9999",request,ResponseEntity.class);
}
}
Теперь я установил две точки останова, одну перед отправкой запроса через RestTemplate.Как и ожидалось, значения заполнены правильно.
Другая точка останова в принимающем контроллере показывает все значения EmailRequest null.
Когда я использую PostMan для вызова отправляющего контроллера, он работает нормально, поэтому явозможно, что-то не так с RestTemplate.
Кто-нибудь знает, в чем может быть проблема?