Я использую Seam для внедрения bean-компонентов в мой контроллер с помощью аннотации @In. Внедренный класс имеет пользовательскую аннотацию, при вызове InjectedClass.getClass().getAnnotation(annotationClass) он возвращает значение null.
При отладке я обнаружил, что Seam передает экземпляр прокси, поэтому getClass() возвращает InjectedClass_$$_javassist_seam_5, у которого нет моей пользовательской аннотации.
Как я могу получить свою пользовательскую аннотацию из прокси-класса?
Вот как выглядят мои занятия:
@CustomAnnotation(value="myvalue")
@Name("myAnnotatedClass")
public class MyAnnotatedClass extends SuperClass {...}
@Scope(ScopeType.SESSION)
@Name("myController")
public class MyController {
@In("#{myAnnotatedClass}")
private MyAnnotatedClass myAnnotatedClass;
public void actionMethod(){
//call another class which call myAnnotatedClass.getClass().getAnnotation(CustomAnnotation.class)
//then do some reflection for MyAnnotatedClass fields
}
}