Я разрабатываю службу REST с использованием Spring MVC. Я пытаюсь реализовать обработку исключений с помощью @ExceptionHandler. Когда исключение выбрасывается из слоя REST, оно не перехватывается @ExceptionHandler. Я что-то пропустил?@ExceptionHandler не получает вызванное однократное исключение, выбрасывается из уровня REST
@Service
@Path("/customer")
public class CustomerResource extends BaseResource{
@Autowired
private CustomerDao customerDao;
........
@GET
@Path("/customer/{accountNumber}")
public Response findCustomerByAccountNumber(String accountNumber) throw Exception{
Customer customer=null;
customer=customerDao.find(....);
if(customer==null)
throw new ResourceNotFoundException();
else
..........
}
}
Базовый класс, который имеет метод обработчика исключений
public abstract class BaseResource {
.......
@ExceptionHandler({ResourceNotFoundException.class })
public Response handleException(Exception ex) {
ErrorResource errResource = new ErrorResource();
.....
return Response.status(Response.Status.NOT_FOUND).entity(errResource).build();
}
}
Извините, это была ошибка типографии. Я обновил сообщение – Pankaj
Я обновил ответ ... –
Вероятно, Джерси с интеграцией Джерси-Весна. Как говорится в обновленном ответе, обработка исключений Spring для Spring MVC, а не JAX-RS. OP будет необходимо реализовать 'javax.ws.rs.ext.ExceptionMapper' для пользовательской обработки исключений. –