Christoph Albrecht [https://community.jboss.org/people/calb] created the discussion
"Problem with @Interceptors on generic bean methods, JBAS7" To view the discussion, visit: https://community.jboss.org/message/735187#735187 -------------------------------------------------------------- Hello all, Migrating my application from JBoss 4.2.3-GA to JBoss 7.1.1-Final I stumpled upon following issue. What is working fine for me with JB-4.2.3 does not with JB-7.1.1. I want an interceptor be triggered on a stateless session bean method that is an implementation of a generic superinterface method declaration. @Stateless @Remote(TestBeanService.class) public class TestBean implements TestBeanService { @Interceptors(TestInterceptor.class) public void simpleFoo() { System.out.println("doing simple foo"); } @Override @Interceptors(TestInterceptor.class) public void genericFoo(SomeClass entity) { System.out.println("doing generic foo"); } } //==================================================== public interface TestBeanService extends GenericService<SomeClass> { public void simpleFoo(); } //==================================================== public interface GenericService<T> { public void genericFoo(T entity); } //==================================================== public class TestInterceptor { @AroundInvoke public Object intercept(InvocationContext invocation) throws Exception { try { System.out.println("intercepting method invocation: " + invocation.getMethod()); Object object = invocation.proceed(); return object; } catch (Exception e) { e.printStackTrace(); } } } If the genericFoo() method is called from a client the invocation is not being intercepted on JB-7.1.1 (on JB-4.2.3 it is). The simpleFoo() method invocation is intercepted without problems. The only way I found making genericFoo() be intercepted on JB-7.1.1 is either to declare the @Interceptors(TestInterceptor.class) annotation on top of the bean class (on the cost of making every method in the bean class be intercepted): @Stateless @Remote(TestBeanService.class) @Interceptors(TestInterceptor.class) public class TestBean implements TestBeanService { //... } The other way around is to add an extra genericFoo() method declaration in the TestBeanService interface, what I was expecting should be unnecessary: public interface TestBeanService extends GenericService<SomeClass> { public void simpleFoo(); public void genericFoo(SomeClass entity); } Don't know, is this an known/new issue with JBoss (EJB) or am I missing something? https://issues.jboss.org/browse/EJBTHREE-2231 https://issues.jboss.org/browse/EJBTHREE-2231 https://issues.jboss.org/browse/EJBTHREE-471 https://issues.jboss.org/browse/EJBTHREE-471 https://community.jboss.org/message/557649#557649 https://community.jboss.org/message/557649#557649 Regards -------------------------------------------------------------- Reply to this message by going to Community [https://community.jboss.org/message/735187#735187] Start a new discussion in EJB3 at Community [https://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2029]
_______________________________________________ jboss-user mailing list [email protected] https://lists.jboss.org/mailman/listinfo/jboss-user
