2015-04-01 3 views
1

Эта проблема может быть простой, но я просто не могу найти решение. Я использую Spring AOP, и в настоящее время я только пытаюсь получить ссылку на прокси-объект, созданный самой картой. Я следовал инструкциям, предоставленным this нить, но я все еще получаю следующее исключение:Невозможно получить доступ к прокси-объекту Spring AOP

Исключение в нити «основной» java.lang.IllegalStateException: Не удается найти текущий прокси: установить свойство «exposeProxy» на Посоветовали ' true ', чтобы сделать его доступным.

Вот требуемая запись в моем springContext.xml:

<aop:aspectj-autoproxy expose-proxy="true"/> 

Это мой аспект определения:

@Aspect 
public class DynamicAspect { 


@Pointcut("execution(* addition.aop.Actor.play(..))") 
public void play() { 

} 

@Before("play()") 
public void directorGivesInstructions() { 
    System.out.println("Director: Light, camera, action!"); 
} 

Основной метод, где все проходит тестирование:

public static void main(String[] args) {  
ApplicationContext context = new ClassPathXmlApplicationContext(...); 
Actor actor = (Actor) context.getBean("actor"); 
actor.play(); 
} 

Это метод класса Actor, который вызывает исключение:

public void play() { 
    AopContext.currentProxy(); 
    System.out.println("Actor starts playing his role..."); 
} 

Аспект сплетается и называется должным образом.

спасибо!

ответ

0

Наконец-то я нашел ошибку самостоятельно. Код выше работает отлично. Однако, заменяя компилятор с ajc на javac, я понял, что представление прокси-сервера работает только с компилятором javac, а не с компилятором AspectJ. Надеюсь, это поможет некоторым из вас в будущем!

Смежные вопросы