Исключение между REST сервисами Spring

202
27 октября 2017, 11:08

Есть фронт, который отправляет разные запросы на промежуточный сервис(далее 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'е?

READ ALSO
Форматирование целого числа из &ldquo;12345678&rdquo; в &ldquo;12 345 678&rdquo;

Форматирование целого числа из “12345678” в “12 345 678”

Как сделать форматирование числа из "12345678" в "12 345 678"То есть нужно каждую 1000 отделить пробелом, что бы большие числа выглядели эстетично

140
Как ускорить запись в SQLite БД?

Как ускорить запись в SQLite БД?

Сейчас я записываю вот так:

162
java.lang.NoSuchMethodError: java.lang.Process.waitFor

java.lang.NoSuchMethodError: java.lang.Process.waitFor

Собственно вот такой код

188
Динамически меняющееся содержимое ExpandableListView

Динамически меняющееся содержимое ExpandableListView

Есть такой код, из которого формируется ExpandableListView:

181