I've implemented REST Controller methods and they work fine when there is no aspects implemented. After I implement aspects, controller methods still execute fine in background(i.e DELETE request actually deletes entries), but when i'm testing responses with Postman, i don't get any responses. Aspects do work, and txt file gets updated when methods get invoked.
@RestController public class MovieScreeningREST { @Autowired private MovieScreeningService movieScreeningService; @GetMapping("/movies") public List<MovieScreening> findAll(){ return movieScreeningService.findAll(); } @GetMapping("/movies/genre={movieGenre}") public List<MovieScreening> findAllByMovieGenre(@PathVariable String movieGenre){ return movieScreeningService.findAllByMovieGenre(movieGenre); } @GetMapping("/movies/minimum-tickets={amount}") public List<MovieScreening> findAllByTicketsSoldGreaterThanEqual(@PathVariable int amount){ return movieScreeningService.findAllByTicketsSoldGreaterThanEqual(amount); } @GetMapping("/movies/maximum-screenings={amount}") public List<MovieScreening> findAllByScreeningsNumberLessThanEqual(@PathVariable int amount){ return movieScreeningService.findAllByScreeningsNumberLessThanEqual(amount); } @GetMapping("/movies/id={id}") public MovieScreening findById(@PathVariable int id){ return movieScreeningService.findById(id); } @PostMapping("/movies") public MovieScreening addMovieScreening(@RequestBody MovieScreening movieScreening){ return movieScreeningService.save(movieScreening); } @PutMapping("/movies") public MovieScreening editMovieScreening(@RequestBody MovieScreening movieScreening){ return movieScreeningService.save(movieScreening); } @DeleteMapping("/movies/id={id}") public String deleteMovieScreening(@PathVariable int id){ return movieScreeningService.deleteById(id); } }
Aspect class
@EnableAspectJAutoProxy @Aspect @Component public class Logger { @Pointcut("execution(* asss.pj.projekat_bioskop.controller.*.*(..))") public void allRESTMethods(){}; @Around("allRESTMethods()") public void blabla(ProceedingJoinPoint pjp) { //@Before String methodName = pjp.getSignature().getName(); String before = "*** Attempting " + methodName + " method ***"; writeLog(before); try { //@AfterReturning pjp.proceed(); String success = "\n*** Method " + methodName + " has succeeded"; writeLog(success); } catch (Throwable throwable){ //@AfterThrowing String failed = "\n*** Method " + methodName + " has failed. " + throwable.getMessage() + " .***"; writeLog(failed); } //@After String after = "\n"; writeLog(after); } public void writeLog(String log){ File file = new File("filmovi_izvestaj.txt"); try (Writer wr = new FileWriter(file, true)){ wr.write(log); } catch(FileNotFoundException fe){ fe.printStackTrace(); } catch(IOException ioe){ ioe.printStackTrace(); } } }