Saya menggunakan Seam untuk menyuntikkan kacang ke pengontrol saya menggunakan anotasi @In. Kelas yang disuntikkan memiliki anotasi khusus, saat memanggil injectionClass.getClass().getAnnotation(annotationClass) ia mengembalikan null.
Saat debug, saya menemukan bahwa Seam meneruskan instance proxy sehingga getClass() mengembalikan InjectedClass_$$_javassist_seam_5 yang tidak memiliki anotasi khusus saya.
Bagaimana saya bisa mendapatkan anotasi khusus dari kelas proxy?
Berikut tampilan kelas saya:
@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
}
}