Есть фронт, который отправляет разные запросы на промежуточный сервис(далее loadbalancer), он перенаправляет запросы на сервис апи(далее api).
Тот самый loadbalancer:
@RestController
@RequestMapping("/api/profile")
public class ProfileController {
@Autowired
private ProfileProcessor profileProcessor;
@PostMapping
@ResponseBody
public Long create(@RequestBody ProfileInfo request) {
LOGGER.info("Called createProfile... ");
return profileProcessor.create(request);
}
@Component
public class ProfileProcessor {
@LoadBalanced
@Autowired
private RestTemplate restTemplate;
public Long create(ProfileInfo request) {
return restTemplate.postForObject(serviceURI + "/profile", request, Long.class);
}
api:
@RestController
@RequestMapping("/profile")
public class ProfileController {
@Autowired
private ProfileRepository profileRepository;
@PostMapping
@ResponseBody
public Long createProfile(@Valid @RequestBody ProfileEntity request) {
return profileRepository.createProfile(request);
}
далее происходит ошибка, потому как пришел невалидный профайл в реквесте, его перехватывает exception handler:
@ControllerAdvice
public class ExceptionHandlingController {
@Autowired
private Validation validationUtil;
@ExceptionHandler(value = MethodArgumentNotValidException.class)
public ResponseEntity<ExceptionResponse> invalidInput(MethodArgumentNotValidException ex) {
ExceptionResponse response = new ExceptionResponse();
BindingResult result = ex.getBindingResult();
response.setErrorCode("400");
response.setErrorMessage("Invalid inputs.");
response.setErrors(validationUtil.fromBindingErrors(result));
return new ResponseEntity<ExceptionResponse>(response, HttpStatus.BAD_REQUEST);
}
получается на loadbalancer возвращается не ожидаемый Long(id), а ResponseEntity с инфой об ошибке, и возникает ошибкa JsonMappingException.
Как мне в такой ситуации перехватить ResponseEntity в loadbalancer'е?
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники