Для целей ведения журнала мы пытаемся поймать различные исключения среды выполнения Spring через собственный AOP Spring, и я должен сказать, что мне это не удалось, поэтому я был бы признателен за любые идеи относительно того, как к этому подойти.
Я пробовал что-то вроде этого:
@Aspect
@Component
public class SomeAspect {
@AfterThrowing(pointcut = "execution(* org.springframwork.oxm..*(..))", throwing = "exception")
@Transactional(propagation = Propagation.REQUIRES_NEW, isolation = Isolation.READ_COMMITTED)
public void adviseSpringErrorEvents(JoinPoint joinPoint, final UnmarshallingFailureException exception) throws Throwable {
LOG.debug(this.getClass().getSimpleName() + " - Error message advice fired on method: " + joinPoint.getSignature().getName());
}
}
Класс автоматически проксируется, и остальные советы в классе аспекта срабатывают правильно, поэтому должна быть проблема с выражением AspectJ.
ОБНОВЛЕНИЕ: код внутри метода не запускается, и я не собираюсь ловить исключение в совете.
Есть идеи? Спасибо заранее.
P.S. Версия фреймворка Spring — 3.0.6.