Я хотел бы понять, как поступить со следующим:
У меня есть микросервис, которому нужно получить продукт:
@RequestMapping("/details-produit/{id}")
public String ficheProduit(@PathVariable int id, Model model){
ResponseEntity<ProductBean> produit = ProduitsProxy.recupererUnProduit(id);
model.addAttribute("produit", produit.getBody());
return "FicheProduit";
}
мой симуляционный класс:
@GetMapping( value = "/Produits/{id}")
ResponseEntity<ProductBean> recupererUnProduit(@PathVariable("id") int id);
И мой CustomErrorDecoder:
@Override
public Exception decode(String invoqueur, Response reponse) {
if (reponse.status() == 400) {
return new ProductBadRequestException("Requête incorrecte ");
} else if (reponse.status() == 404) {
return new ProductNotFoundException("Produit non trouvé ");
}
return defaultErrorDecoder.decode(invoqueur, reponse);
}
Что я хотел бы понять, как вернуться к методу вызывающего абонента, для этого:
@RequestMapping("/details-produit/{id}")
public String ficheProduit(@PathVariable int id, Model model){
ResponseEntity<ProductBean> productBeanResponseEntity = ProduitsProxy.recupererUnProduit(id);
if (productBeanResponseEntity.getStatusCode() == HttpStatus.OK) {
model.addAttribute("produit", productBeanResponseEntity.getBody());
} else {
**// Do something here**
}
return "FicheProduit";
}
На данный момент единственное отклонение, которое я нашел, было сделать так:
try {
ResponseEntity<ProductBean> produit = ProduitsProxy.recupererUnProduit(id);
model.addAttribute("produit", produit.getBody());
} catch (ProductNotFoundException e) {
log.error(e.getMessage());
}
Но я бы хотел обработать ошибки такого рода и продолжить процесс метода вызывающей стороны.
Как мне справиться? Это ?
Спасибо!