3 Replies Latest reply on Aug 10, 2007 9:35 AM by J-C jc

    EJB3 Interceptor never called - how to debug?

    steve tynor Novice

      I am trying to add an ejb3 interceptor, but can't even get a simple one to run. From my reading of the docs, I should be able to just add the Interceptor annotations and be off and running, but my interceptor functions never run. Here's the interceptor class:

      public class MyInterceptor {
      
       @PostConstruct
       public void postConstruct(InvocationContext invocation) {
       try {
       Object target = invocation.getTarget();
      
       System.err.println("In PostConstruct MyInterceptor for " + target);
       invocation.proceed();
       } catch (Exception ex) {
       log.error("Error in PostConstruct MyInterceptor", ex);
       }
       }
      
       @AroundInvoke
       public void aroundInvoke(InvocationContext invocation) {
       try {
       Object target = invocation.getTarget();
      
       System.err.println("In AroundInvoke MyInterceptor for " + target);
       invocation.proceed();
       } catch (Exception ex) {
       log.error("Error in AroundInvoke MyInterceptor", ex);
       }
       }
      }


      I've tried annotating both the class and a method thusly:

      @Interceptors(MyInterceptor.class)
      @Entity
      @Table(name = "client")
      public class Client implements java.io.Serializable {
      ...
       @Interceptors(MyInterceptor.class)
       public void setName(String name) {
       System.err.println("In setName");
       this.name = name;
       }


      and specifically call the setName() method, but neither of my interceptor functions ever fire. No errors in the log. Can anyone spot what I've done wrong? Better yet, how can I debug this?

      Seam 1.2.1-GA
      JBoss AS 4.2.1

      Thanks!