11 Replies Latest reply on Oct 24, 2005 7:31 PM by Dion McMurtrie

    @Tx annotation jboss ejb3 help

    Dion McMurtrie Newbie

      I'm having some trouble trying to use the @Tx annotation. Basically to me it seems that the code is never being weaved and therefore the interceptor never executes. So I'm pretty sure I have some config wrong, but I don't know what.

      I'm using ejb3 with JBoss 4.0.3 with the JDK50 annotations installed in deploy/jboss-aop-jdk50.deployer and I've changed the deploy/jboss-aop-jdk50.deployer/META-INF/jboss-service.xml to set EnableLoadtimeWeaving to true. I've also got the pluggable-instrumentor.jar from the JBoss AOP release 1.3.4 and set it as a java option -javaagent:pluggable-instrumentor.jar in the server start up.

      So from my understanding I do not need to run the aop compiler over my code, that should get done dynamically, and the @Tx annotation has the following binding defined in the deploy/jboss-aop-jdk50.deployer/base-aop.xml file -

      <interceptor-ref name="org.jboss.aspects.tx.TxInterceptorFactory"/>


      Essentially the test that I am running is a JUnit test that connects to a stateless session bean just to get me on the server. The SLSB has each method set to @TransactionAttribute(TransactionAttributeType.NEVER) so that I won't get a transaction.

      The SLSB calls a simple POJO that has @Tx(TxType.REQUIRED) defined for its methods, which in turn calls a SLSB (all methods defined as @TransactionAttribute(TransactionAttributeType.SUPPORTS) that performs some persistence operations via some entity beans with the EntityManager.

      So I have (note the first SLSB is just to get me onto the server)
      JUnit -> SLSB -> POJO -> SLSB -> EntityManager/Entity beans

      What I was expecting was that POJO would fire up a transaction and the SLSB that manages the entities would just use that transaction. What happened was that the EntityManagerFactory threw a TransactionRequiredException so clearly no transaction was started.

      From the stack trace I can see that there was no interception before the POJO method with the @Tx annotation executed, and therefore no transaction started up. The stack trace shows the SLSB method and the next line up is the POJO method.

      In terms of deployment I have tried most things that I can think of. I have deployed it all in one ejb3 file, but that didn't work. I have also deployed just the EJBs in a ejb3 file and everything else in an aop file with a jboss-aop.xml in the META-INF directory in the aop file. The aspect deployer shows on the console deploying the aop file, but it seems the code is still not instrumented.

      I'm probably doing something really simple and dumb, but I don't understand why the method with the @Tx annotation is not being intercepted. I'm a bit new to AOP and JBoss, and I'm convinced that I've just configured it incorrectly.

      Can someone point out where I've gone wrong to get the dynamic weaving working?

      Thanks,
      Dion.

        • 1. Re: @Tx annotation jboss ejb3 help
          Kabir Khan Master

          Most likely you have missed a step in the loadtime weaving setup.

          Please read this (again):
          http://docs.jboss.com/aop/1.3/aspect-framework/reference/en/html/running.html#jboss

          and try the injboss tutorial example that comes with the JBoss AOP distribution

          • 2. Re: @Tx annotation jboss ejb3 help
            Dion McMurtrie Newbie

            OK, I did that.

            The steps that I have made (following the doc) were:

            1. deleted /jboss-4.0.3/server/all/deploy/jboss-aop.deployer
            2. copied /jboss-aop_1.3.4/jboss-40-install/jboss-aop-jdk50.deployer to /jboss-4.0.3/server/all/deploy
            3. copied the /jboss-aop_1.3.4/lib-50/pluggin-instrumentor.jar to /jboss-4.0.3/bin
            4. edited the /jboss-4.0.3/bin/run.bat to add set "JAVA_OPTS -javaagent:pluggin-instrumentor.jar"
            5. edited /jboss-4.0.3/server/all/deploy/jboss-aop-jdk50.deployer/META-INF/jboss-service.xml to change EnableLoadtimeWeaving to true


            I'm using JDK 5 so JAVA_HOME=c:\Program Files\Java\jdk1.5.0_05

            I then tried to run the example at /jboss-aop_1.3.4/docs/aspect-framework/examples/annotated-injboss (after editing the build xml for my jboss install) with the command "ant deploy-ear-aop", however I got a compile error (sysout displayed at the end of message).

            So then I tried /jboss-aop_1.3.4/docs/aspect-framework/examples/injboss instead, much the same way. It compiled and deployed, so I ran it. But the interceptors did not fire. This was the output I got on the server console.

            17:05:21,374 INFO [Server] JBoss (MX MicroKernel) [4.0.3 (build: CVSTag=JBoss_4_0_3 date=200510042324)] Started in 47s:532ms
            17:05:50,874 INFO [TomcatDeployer] undeploy, ctxPath=/aopexample, warUrl=.../tmp/deploy/tmp47627aopexample.ear-contents/aopexample-exp.war/
            17:05:50,921 INFO [EJBDeployer] Undeploying: file:/C:/jboss-4.0.3/server/all/tmp/deploy/tmp47627aopexample.ear-contents/aopexampleejb.jar
            17:05:51,046 INFO [ProxyFactory] Unbind EJB Home 'ExampleSession' from jndi 'ExampleSession'
            17:05:51,046 INFO [EjbModule] Undeployed ExampleSession
            17:05:51,062 INFO [EARDeployer] Undeploying J2EE application, destroy step: file:/C:/jboss-4.0.3/server/all/deploy/aopexample.ear
            17:06:01,156 INFO [EARDeployer] Init J2EE application: file:/C:/jboss-4.0.3/server/all/deploy/aopexample.ear
            17:06:01,390 INFO [AspectDeployer] Deployed AOP: file:/C:/jboss-4.0.3/server/all/tmp/deploy/tmp47630aopexample.ear-contents/aopexamplelib.aop
            17:06:01,515 INFO [EjbModule] Deploying ExampleSession
            17:06:01,609 INFO [ProxyFactory] Bound EJB Home 'ExampleSession' to jndi 'ExampleSession'
            17:06:01,609 INFO [EJBDeployer] Deployed: file:/C:/jboss-4.0.3/server/all/tmp/deploy/tmp47630aopexample.ear-contents/aopexampleejb.jar
            17:06:01,703 INFO [TomcatDeployer] deploy, ctxPath=/aopexample, warUrl=.../tmp/deploy/tmp47630aopexample.ear-contents/aopexample-exp.war/
            17:06:01,890 INFO [EARDeployer] Started J2EE application: file:/C:/jboss-4.0.3/server/all/deploy/aopexample.ear
            17:06:26,906 INFO [STDOUT] **** ExampleValue empty Constructor
            17:06:26,906 INFO [STDOUT] **** ExampleValue.getMessage()
            17:06:31,140 INFO [STDOUT] **** EarExampleServlet.service()
            17:06:31,234 INFO [STDOUT] *** ExampleSessionBean.getValue()
            17:06:31,234 INFO [STDOUT] **** ExampleValue String Constructor
            17:06:31,234 INFO [STDOUT] **** ExampleValue String Constructor
            17:06:31,250 INFO [STDOUT] **** ExampleValue.getMessage()


            Any assistance would be much appreciated, I just don't understand what I've done wrong. The stand alone examples work fine, but deployed in JBoss they don't, which leads me to beleive that the dynamic weaving isn't working for me.

            C:\jboss-aop_1.3.4\docs\aspect-framework\examples\annotated-injboss>ant deploy-ear-aop
            Buildfile: build.xml
            
            prepare:
             [echo] ===========================================================
             [echo] YOUR JBOSS DISTRIBUTION ROOT IS: C:/jboss-4.0.3
             [echo] YOUR SERVER CONFIG IS: all
             [echo] MAKE SURE YOU STARTED JBOSS WITH: run -c all
             [echo] ===========================================================
             [echo] ../../../../lib
             [echo] ../../../../lib
             [delete] Deleting directory C:\jboss-aop_1.3.4\docs\aspect-framework\examples\annotated-injboss\output
             [mkdir] Created dir: C:\jboss-aop_1.3.4\docs\aspect-framework\examples\annotated-injboss\output
             [mkdir] Created dir: C:\jboss-aop_1.3.4\docs\aspect-framework\examples\annotated-injboss\output\classes
             [mkdir] Created dir: C:\jboss-aop_1.3.4\docs\aspect-framework\examples\annotated-injboss\output\aopclasses
             [mkdir] Created dir: C:\jboss-aop_1.3.4\docs\aspect-framework\examples\annotated-injboss\output\lib
             [mkdir] Created dir: C:\jboss-aop_1.3.4\docs\aspect-framework\examples\annotated-injboss\output\web-basic
            
            compile:
             [javac] Compiling 9 source files to C:\jboss-aop_1.3.4\docs\aspect-framework\examples\annotated-injboss\output\classes
             [javac] C:\jboss-aop_1.3.4\docs\aspect-framework\examples\annotated-injboss\src\main\org\jboss\injbossaop\lib\SimpleInterceptor.java:28: incompatible types
             [javac] found : org.jboss.aop.InterceptorDef
             [javac] required: java.lang.annotation.Annotation
             [javac] @InterceptorDef
             [javac] ^
             [javac] C:\jboss-aop_1.3.4\docs\aspect-framework\examples\annotated-injboss\src\main\org\jboss\injbossaop\lib\SimpleInterceptor.java:29: incompatible types
             [javac] found : org.jboss.aop.Bind
             [javac] required: java.lang.annotation.Annotation
             [javac] @Bind(pointcut="org.jboss.injbossaop.lib.SimpleInterceptor.valueConstructors OR / org.jboss.injbossaop.lib.SimpleInterceptor.valueMessage OR org.jboss.injbossaop.lib.SimpleInterceptor.service OR org.jboss.injbossaop.lib.SimpleInterceptor.sessionValue OR org.jboss.injbossaop.lib.SimpleInterceptor.mbeans")
             [javac] ^
             [javac] C:\jboss-aop_1.3.4\docs\aspect-framework\examples\annotated-injboss\src\main\org\jboss\injbossaop\lib\SimpleInterceptor.java:29: duplicate annotation
             [javac] @Bind(pointcut="org.jboss.injbossaop.lib.SimpleInterceptor.valueConstructors OR / org.jboss.injbossaop.lib.SimpleInterceptor.valueMessage OR org.jboss.injbossaop.lib.SimpleInterceptor.service OR org.jboss.injbossaop.lib.SimpleInterceptor.sessionValue OR org.jboss.injbossaop.lib.SimpleInterceptor.mbeans")
             [javac] ^
             [javac] C:\jboss-aop_1.3.4\docs\aspect-framework\examples\annotated-injboss\src\main\org\jboss\injbossaop\lib\SimpleInterceptor.java:32: incompatible types
             [javac] found : org.jboss.aop.PointcutDef
             [javac] required: java.lang.annotation.Annotation
             [javac] @PointcutDef ("execution(org.jboss.injbossaop.lib.ExampleValue->new(..))")
             [javac] ^
             [javac] C:\jboss-aop_1.3.4\docs\aspect-framework\examples\annotated-injboss\src\main\org\jboss\injbossaop\lib\SimpleInterceptor.java:35: incompatible types
             [javac] found : org.jboss.aop.PointcutDef
             [javac] required: java.lang.annotation.Annotation
             [javac] @PointcutDef ("execution(* org.jboss.injbossaop.lib.ExampleValue->getMessage())")
             [javac] ^
             [javac] C:\jboss-aop_1.3.4\docs\aspect-framework\examples\annotated-injboss\src\main\org\jboss\injbossaop\lib\SimpleInterceptor.java:38: incompatible types
             [javac] found : org.jboss.aop.TypeDef
             [javac] required: java.lang.annotation.Annotation
             [javac] @TypeDef ("class($instanceof{javax.servlet.http.HttpServlet}) AND class(org.jboss.injbossaop.web.*)")
             [javac] ^
             [javac] C:\jboss-aop_1.3.4\docs\aspect-framework\examples\annotated-injboss\src\main\org\jboss\injbossaop\lib\SimpleInterceptor.java:41: incompatible types
             [javac] found : org.jboss.aop.PointcutDef
             [javac] required: java.lang.annotation.Annotation
             [javac] @PointcutDef ("execution(* $typedef{org.jboss.injbossaop.lib.SimpleInterceptor.servlets}->service(..))")
             [javac] ^
             [javac] C:\jboss-aop_1.3.4\docs\aspect-framework\examples\annotated-injboss\src\main\org\jboss\injbossaop\lib\SimpleInterceptor.java:44: incompatible types
             [javac] found : org.jboss.aop.TypeDef
             [javac] required: java.lang.annotation.Annotation
             [javac] @TypeDef ("class($instanceof{javax.ejb.SessionBean}) AND class(org.jboss.injbossaop.ejb.*)")
             [javac] ^
             [javac] C:\jboss-aop_1.3.4\docs\aspect-framework\examples\annotated-injboss\src\main\org\jboss\injbossaop\lib\SimpleInterceptor.java:47: incompatible types
             [javac] found : org.jboss.aop.PointcutDef
             [javac] required: java.lang.annotation.Annotation
             [javac] @PointcutDef ("execution(* $typedef{org.jboss.injbossaop.lib.SimpleInterceptor.sessionBeans}->getValue(..))")
             [javac] ^
             [javac] C:\jboss-aop_1.3.4\docs\aspect-framework\examples\annotated-injboss\src\main\org\jboss\injbossaop\lib\SimpleInterceptor.java:50: incompatible types
             [javac] found : org.jboss.aop.PointcutDef
             [javac] required: java.lang.annotation.Annotation
             [javac] @PointcutDef ("all(org.jboss.injbossaop.mbean.*)")
             [javac] ^
             [javac] 10 errors
            
            BUILD FAILED
            C:\jboss-aop_1.3.4\docs\aspect-framework\examples\annotated-injboss\build.xml:11
            0: Compile failed; see the compiler error output for details.
            
            Total time: 2 seconds



            • 3. Re: @Tx annotation jboss ejb3 help
              Kabir Khan Master

              You also need to modify the /jboss-4.0.3/server/all/deploy/META-INF/jboss-service.xml file to use to the AspectManagerServiceJDK5 as indicated by the comments in the file. i.e:

               <mbean code="org.jboss.aop.deployment.AspectManagerServiceJDK5"
               name="jboss.aop:service=AspectManager">
               <attribute name="EnableLoadtimeWeaving">true</attribute>
               <!-- only relevant when EnableLoadtimeWeaving is true.
               When transformer is on, every loaded class gets
               transformed. If AOP can't find the class, then it
               throws an exception. Sometimes, classes may not have
               all the classes they reference. So, the Suppressing
               is needed. (i.e. Jboss cache in the default configuration -->
               <attribute name="SuppressTransformationErrors">true</attribute>
               <attribute name="Prune">true</attribute>
               <attribute name="Include">org.jboss.test, org.jboss.injbossaop</attribute>
               <attribute name="Exclude">org.jboss.</attribute>
               -- This avoids instrumentation of hibernate cglib enhanced proxies
               <attribute name="Optimized">true</attribute>
               <attribute name="Verbose">false</attribute>
               </mbean>
              


              Regarding the annotated-injboss, you should be using java 5 to compile the file, make sure that JAVA_HOME points to your jdk 5 install folder AND

              set PATH=%JAVA_HOME%\bin;%PATH%


              • 4. Re: @Tx annotation jboss ejb3 help
                Dion McMurtrie Newbie

                 

                You also need to modify the /jboss-4.0.3/server/all/deploy/META-INF/jboss-service.xml file...

                Did you really mean /jboss-4.0.3/server/all/deploy/jboss-aop-jdk50.deployer/META-INF/jboss-service.xml file? I have already changed that file (listed as point five in my second post). That file is as follows on my machine -
                <?xml version="1.0" encoding="UTF-8"?>
                <!-- $Id: jboss-service.xml,v 1.3.2.4 2005/09/09 07:23:48 kkhan Exp $ -->
                
                <!-- ===================================================================== -->
                <!-- JBoss Server Configuration -->
                <!-- ===================================================================== -->
                
                <server>
                
                 <!-- The code for the service is different for the different run scenarios
                 *** JBoss 4.0
                 * JDK 1.4 - org.jboss.aop.deployment.AspectManagerService
                 * JDK 5 (not using -javaagent switch) - org.jboss.aop.deployment.AspectManagerService
                 * JDK 5 (using -javaagent switch) - org.jboss.aop.deployment.AspectManagerServiceJDK5
                 * BEA JRockit 1.4.2 - org.jboss.aop.deployment.AspectManagerService
                 *** JBoss 3.2
                 * JDK 1.4 - org.jboss.aop.deployment.AspectManagerService32
                 * JDK 5 (not using -javaagent switch) - org.jboss.aop.deployment.AspectManagerService32
                 * JDK 5 (using -javaagent switch) - org.jboss.aop.deployment.AspectManagerService32JDK5
                 * BEA JRockit 1.4.2 - org.jboss.aop.deployment.AspectManagerService32
                 -->
                 <mbean code="org.jboss.aop.deployment.AspectManagerService"
                 name="jboss.aop:service=AspectManager">
                 <attribute name="EnableLoadtimeWeaving">true</attribute>
                 <!-- only relevant when EnableLoadtimeWeaving is true.
                 When transformer is on, every loaded class gets
                 transformed. If AOP can't find the class, then it
                 throws an exception. Sometimes, classes may not have
                 all the classes they reference. So, the Suppressing
                 is needed. (i.e. Jboss cache in the default configuration -->
                 <attribute name="SuppressTransformationErrors">true</attribute>
                 <attribute name="Prune">true</attribute>
                 <attribute name="Include">org.jboss.test, org.jboss.injbossaop</attribute>
                 <attribute name="Exclude">org.jboss.</attribute>
                 <attribute name="Optimized">true</attribute>
                 <attribute name="Verbose">false</attribute>
                 </mbean>
                
                 <mbean code="org.jboss.aop.deployment.AspectDeployer"
                 name="jboss.aop:service=AspectDeployer">
                 </mbean>
                
                </server>
                


                which I think is right. I don't have a file /jboss-4.0.3/server/all/deploy/META-INF/jboss-service.xml on my machine...so if you really did mean that filepath, should I be adding one or was that just a typo?

                On the JDK 5 compiler. My JAVA_HOME and PATH are as follows
                JAVA_HOME=c:\Program Files\Java\jdk1.5.0_05
                Path=c:\Program Files\Java\jdk1.5.0_05\bin;C:\oracle\product\10.2.0\db_1\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\Downloaded Program Files;C:\IBMTOOLS\Python22;C:\Program Files\PC-Doctor for Windows\services;C:\apache-ant-1.6.5\bin;C:\jboss-4.0.3\bin;C:\Program Files\cvsnt;
                


                but I still have the same compile issues.

                Thanks for the post...any other ideas?

                • 5. Re: @Tx annotation jboss ejb3 help
                  Kabir Khan Master

                  Yes I actually meant /jboss-4.0.3/server/all/deploy/ jboss-aop-jdk50.deployer /META-INF/jboss-service.xml. You also need to change the code attribute to:
                  code="org.jboss.aop.deployment.AspectManagerServiceJDK5"

                  • 6. Re: @Tx annotation jboss ejb3 help
                    Dion McMurtrie Newbie

                    Sorry, I should have read your reply more carefully. I changed the /jboss-4.0.3/server/all/deploy/jboss-aop-jdk50.deployer/META-INF/jboss-service.xml file and set the code attribute to:
                    code="org.jboss.aop.deployment. AspectManagerServiceJDK5 "

                    So now the injboss example works fine. The annotation-injboss example I still can't compile and I'd like to see it run to see the annotation stuff working. But if the weaving is happening on the server then I'm happy.

                    One thing that I'm still not clear on is deployment if I am using one of the library annotation based aspects such as @Tx. All the examples are based around writing your own aspect, deploying and using it. But what if I want to use one of the ones in the jboss-aop library?

                    In my example I need to deploy a couple of ejb3 session beans and then POJO code that uses the aspect @Tx. Do I need to create an ear and put the code for the aspect in an aop file and the ejb3s in ejb3 files? Or can I just deploy it all with an ejb3? Do I need to have my own jboss-aop.xml file, or as these are already defined in the base-aop.xml do I not need one of these file?

                    Thanks,
                    Dion.

                    • 7. Re: @Tx annotation jboss ejb3 help
                      Kabir Khan Master

                      I just found out that the annotated-injboss example is broken, I'll add a jira task to get it fixed. However, from your compile output it really looks like you're not using jdk 5 when compiling. Type
                      $java -version
                      from the command-line to find it out

                      Regarding using the aspects that ship with JBoss, the code for these is contained in jboss-aop(-jdk50).deployer, so you do not need to include the code for these yourself. In jboss-aop(-jdk50).deployer/base-aop.xml you have the default bindings for all the jboss aspects.

                      You can find more information about these here:
                      http://wiki.jboss.org/wiki/Wiki.jsp?page=JBossAOP

                      and more specifcally here:
                      http://wiki.jboss.org/wiki/Wiki.jsp?page=JBossAOP

                      • 9. Re: @Tx annotation jboss ejb3 help
                        Dion McMurtrie Newbie

                        I don't understand why the compile errors are there, do I need some other compile switch set? I've checked the java version -

                        C:\jboss-aop_1.3.4\docs\aspect-framework\examples\injboss>java -version
                        java version "1.5.0_05"
                        Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_05-b05)
                        Java HotSpot(TM) Client VM (build 1.5.0_05-b05, mixed mode, sharing)
                        
                        C:\jboss-aop_1.3.4\docs\aspect-framework\examples\injboss>


                        It seems to me that the compiler doesn't think that the jboss annotations are of type java.lang.annotation.Annotation. For example the following error says to me that the compiler doesn't think that the org.jboss.aop.InterceptorDef is of type java.lang.annotation.Annotation - is that the right interpretation?

                        [javac] Compiling 9 source files to C:\jboss-aop_1.3.4\docs\aspect-framework
                        \examples\annotated-injboss\output\classes
                         [javac] C:\jboss-aop_1.3.4\docs\aspect-framework\examples\annotated-injboss\
                        src\main\org\jboss\injbossaop\lib\SimpleInterceptor.java:28: incompatible types
                         [javac] found : org.jboss.aop.InterceptorDef
                         [javac] required: java.lang.annotation.Annotation
                         [javac] @InterceptorDef
                         [javac] ^


                        In terms of using the aspects shipped with JBoss, if they are deployed and all the bindings are set when the server starts as part of jboss-aop-jdk50.deployer, does that mean that I can just deploy all my code in an ejb3 file and they should still get the dynamic weaving when the ejb3 is deployed and run? Or do I need a .aop file as a tip for the aspect deployer to realise it needs to do something with the annotated classes?

                        I checked out the link you sent, and that is basically what my code looks like with markers on the methods like...
                        @Tx(TxType.REQUIRED)
                        public void createTxTestEntity(String name, String description) {...}
                        


                        I still don't seem to be getting the intercept for the @Tx(TxType.XXX) annotation in my code, so I'd really like to run the example annotated-injboss and see them work. Any suggestions on why I can't compile it? Or do you have another example that uses @Tx that I can deploy in my jboss environment to see if it is my code or my environment that is wrong?

                        Thanks,
                        Dion.

                        • 10. Re: @Tx annotation jboss ejb3 help
                          Kabir Khan Master

                          The compilation errors stem from the example using the jdk 1.4 libs instead of the jdk 5 libs. In jdk 4 the annotation types used are just normal interfaces, not actual jdk annotation types. I've updated this in jboss head.

                          Your Tx annotations look correct. There was a problem with this particular annotation not having the correct retention type, so the annotations were not accessible at runtime. but this was fixed for 1.3.3. JBoss 4.0.3 ships with aop 1.3.4, so this should work.

                          If you check out jboss 4, you should be able to build jboss (use jdk 5). Start it up. Then

                          $cd jboss-4.0
                          $cd testsuite
                          $build
                          $build test -Dtest=aop test

                          This builds and runs the testsuite, which uses the Tx annotation. Note that the JDK 1.4 compiled in annotations are not compatible with the JDK 5 ones.

                          So for the tests to work you need to either
                          build jboss w/ JDK 1.4 (which gives you the 1.4 jboss-aop.deployer) and build/run the tests with jdk 1.4

                          OR

                          build jboss w/ JDK 5 (which gives you the 5 jboss-aop-jdk50.deployer) and build/run the tests with jdk 5


                          You should just need to deploy your stuff with weaving enabled to use the aspects

                          • 11. Re: @Tx annotation jboss ejb3 help
                            Dion McMurtrie Newbie

                            OK I got the build to work for annotated-injboss by changing the classpath variable

                            <path id="classpath">
                             <path refid="jboss.aop.classpath50"/>
                             <path refid="jboss.classpath"/>
                             <pathelement path="."/>
                             </path>


                            So I could deploy it and run it. When I deployed it I got an exception (refer to the log at the end of this post). But I managed to run it and it seemed to get intercepted.

                            I'll trim down my example and post the whole thing and try building JBoss and running the @Tx tests.

                            09:09:46,896 INFO [Server] JBoss (MX MicroKernel) [4.0.3 (build: CVSTag=JBoss_4_0_3 date=200510042324)] Started in 1m:16s:721ms
                            09:10:20,818 INFO [EARDeployer] Init J2EE application: file:/C:/jboss-4.0.3/server/all/deploy/aopexample.ear
                            09:10:21,224 INFO [STDOUT] error getting:java.lang.reflect.InvocationHandler. 'invoke'
                            09:10:21,224 INFO [STDOUT] java.lang.RuntimeException: Unable to resolve pointcut reference: org.jboss.injbossaop.lib.SimpleInterceptor.valueConstructors
                            09:10:21,224 INFO [STDOUT] at org.jboss.aop.pointcut.MatcherHelper.visit(MatcherHelper.java:131)
                            09:10:21,224 INFO [STDOUT] at org.jboss.aop.pointcut.ast.ASTPointcut.jjtAccept(ASTPointcut.java:21)
                            09:10:21,224 INFO [STDOUT] at org.jboss.aop.pointcut.MatcherHelper.visit(MatcherHelper.java:107)
                            09:10:21,224 INFO [STDOUT] at org.jboss.aop.pointcut.ast.ASTSub.jjtAccept(ASTSub.java:17)
                            09:10:21,224 INFO [STDOUT] at org.jboss.aop.pointcut.MatcherHelper.visit(MatcherHelper.java:87)
                            09:10:21,240 INFO [STDOUT] at org.jboss.aop.pointcut.ast.ASTBoolean.jjtAccept(ASTBoolean.java:17)
                            09:10:21,240 INFO [STDOUT] at org.jboss.aop.pointcut.MatcherHelper.visit(MatcherHelper.java:77)
                            09:10:21,240 INFO [STDOUT] at org.jboss.aop.pointcut.MatcherHelper.matches(MatcherHelper.java:72)
                            09:10:21,240 INFO [STDOUT] at org.jboss.aop.pointcut.PointcutExpression.matchesCall(PointcutExpression.java:88)
                            09:10:21,240 INFO [STDOUT] at org.jboss.aop.instrument.CallerTransformer$CallerExprEditor.edit(CallerTransformer.java:227)
                            09:10:21,240 INFO [STDOUT] at javassist.expr.ExprEditor.doit(ExprEditor.java:118)
                            09:10:21,240 INFO [STDOUT] at javassist.CtBehavior.instrument(CtBehavior.java:362)
                            09:10:21,240 INFO [STDOUT] at org.jboss.aop.instrument.CallerTransformer.applyCallerPointcuts(CallerTransformer.java:72)
                            09:10:21,240 INFO [STDOUT] at org.jboss.aop.instrument.Instrumentor.applyCallerPointcuts(Instrumentor.java:513)
                            09:10:21,240 INFO [STDOUT] at org.jboss.aop.instrument.Instrumentor.transform(Instrumentor.java:629)
                            09:10:21,240 INFO [STDOUT] at org.jboss.aop.AspectManager.translate(AspectManager.java:754)
                            09:10:21,240 INFO [STDOUT] at org.jboss.aop.AspectManager.transform(AspectManager.java:666)
                            09:10:21,240 INFO [STDOUT] at org.jboss.aop.standalone.AOPTransformer.aspectTransform(AOPTransformer.java:62)
                            09:10:21,240 INFO [STDOUT] at org.jboss.aop.standalone.AOPTransformer.transform(AOPTransformer.java:54)
                            09:10:21,240 INFO [STDOUT] at sun.instrument.TransformerManager.transform(TransformerManager.java:122)
                            09:10:21,240 INFO [STDOUT] at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:155)
                            09:10:21,240 INFO [STDOUT] at java.lang.reflect.Proxy.defineClass0(Native Method)
                            09:10:21,240 INFO [STDOUT] at java.lang.reflect.Proxy.getProxyClass(Proxy.java:487)
                            09:10:21,240 INFO [STDOUT] at java.lang.reflect.Proxy.newProxyInstance(Proxy.java:564)
                            09:10:21,240 INFO [STDOUT] at org.jboss.aop.annotation.AnnotationProxy.createProxy(AnnotationProxy.java:91)
                            09:10:21,240 INFO [STDOUT] at org.jboss.aop.AspectAnnotationLoader.deployPointcuts(AspectAnnotationLoader.java:477)
                            
                            09:10:21,240 INFO [STDOUT] at org.jboss.aop.AspectAnnotationLoader.deployInputStreamIterator(AspectAnnotationLoader.java:112)
                            09:10:21,240 INFO [STDOUT] at org.jboss.aop.deployment.AspectDeployer.create(AspectDeployer.java:144)
                            09:10:21,240 INFO [STDOUT] at org.jboss.deployment.MainDeployer.create(MainDeployer.java:935)
                            09:10:21,240 INFO [STDOUT] at org.jboss.deployment.MainDeployer.create(MainDeployer.java:925)
                            09:10:21,240 INFO [STDOUT] at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:789)
                            09:10:21,240 INFO [STDOUT] at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:753)
                            09:10:21,240 INFO [STDOUT] at sun.reflect.GeneratedMethodAccessor16.invoke(Unknown Source)
                            09:10:21,240 INFO [STDOUT] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
                            
                            09:10:21,240 INFO [STDOUT] at java.lang.reflect.Method.invoke(Method.java:585)
                            09:10:21,240 INFO [STDOUT] at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:141)
                            09:10:21,240 INFO [STDOUT] at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
                            09:10:21,240 INFO [STDOUT] at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:118)
                            09:10:21,256 INFO [STDOUT] at org.jboss.mx.server.Invocation.invoke(Invocation.java:74)
                            09:10:21,256 INFO [STDOUT] at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:127)
                            09:10:21,256 INFO [STDOUT] at org.jboss.mx.server.Invocation.invoke(Invocation.java:74)
                            09:10:21,256 INFO [STDOUT] at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:245)
                            09:10:21,256 INFO [STDOUT] at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:644)
                            09:10:21,256 INFO [STDOUT] at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:176)
                            09:10:21,256 INFO [STDOUT] at $Proxy9.deploy(Unknown Source)
                            09:10:21,256 INFO [STDOUT] at org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymentScanner.java:319)
                            09:10:21,256 INFO [STDOUT] at org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:507)
                            
                            09:10:21,256 INFO [STDOUT] at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.doScan(AbstractDeploymentScanner.java:192)
                            09:10:21,256 INFO [STDOUT] at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.loop(AbstractDeploymentScanner.java:203)
                            09:10:21,256 INFO [STDOUT] at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.run(AbstractDeploymentScanner.java:182)
                            09:10:21,256 INFO [STDOUT] [warn] AOP Instrumentor failed to transform $Proxy60
                            09:10:21,256 INFO [STDOUT] javassist.CannotCompileException: by java.lang.RuntimeException: Unable to resolve pointcutreference: org.jboss.injbossaop.lib.SimpleInterceptor.valueConstructors
                            09:10:21,256 INFO [STDOUT] at org.jboss.aop.instrument.CallerTransformer$CallerExprEditor.edit(CallerTransformer.java:248)
                            09:10:21,256 INFO [STDOUT] at javassist.expr.ExprEditor.doit(ExprEditor.java:118)
                            09:10:21,256 INFO [STDOUT] at javassist.CtBehavior.instrument(CtBehavior.java:362)
                            09:10:21,256 INFO [STDOUT] at org.jboss.aop.instrument.CallerTransformer.applyCallerPointcuts(CallerTransformer.java:72)
                            09:10:21,256 INFO [STDOUT] at org.jboss.aop.instrument.Instrumentor.applyCallerPointcuts(Instrumentor.java:513)
                            09:10:21,256 INFO [STDOUT] at org.jboss.aop.instrument.Instrumentor.transform(Instrumentor.java:629)
                            09:10:21,256 INFO [STDOUT] at org.jboss.aop.AspectManager.translate(AspectManager.java:754)
                            09:10:21,256 INFO [STDOUT] at org.jboss.aop.AspectManager.transform(AspectManager.java:666)
                            09:10:21,256 INFO [STDOUT] at org.jboss.aop.standalone.AOPTransformer.aspectTransform(AOPTransformer.java:62)
                            09:10:21,256 INFO [STDOUT] at org.jboss.aop.standalone.AOPTransformer.transform(AOPTransformer.java:54)
                            09:10:21,256 INFO [STDOUT] at sun.instrument.TransformerManager.transform(TransformerManager.java:122)
                            09:10:21,256 INFO [STDOUT] at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:155)
                            09:10:21,256 INFO [STDOUT] at java.lang.reflect.Proxy.defineClass0(Native Method)
                            09:10:21,256 INFO [STDOUT] at java.lang.reflect.Proxy.getProxyClass(Proxy.java:487)
                            09:10:21,256 INFO [STDOUT] at java.lang.reflect.Proxy.newProxyInstance(Proxy.java:564)
                            09:10:21,256 INFO [STDOUT] at org.jboss.aop.annotation.AnnotationProxy.createProxy(AnnotationProxy.java:91)
                            09:10:21,256 INFO [STDOUT] at org.jboss.aop.AspectAnnotationLoader.deployPointcuts(AspectAnnotationLoader.java:477)
                            
                            09:10:21,256 INFO [STDOUT] at org.jboss.aop.AspectAnnotationLoader.deployInputStreamIterator(AspectAnnotationLoader.java:112)
                            09:10:21,256 INFO [STDOUT] at org.jboss.aop.deployment.AspectDeployer.create(AspectDeployer.java:144)
                            09:10:21,256 INFO [STDOUT] at org.jboss.deployment.MainDeployer.create(MainDeployer.java:935)
                            09:10:21,256 INFO [STDOUT] at org.jboss.deployment.MainDeployer.create(MainDeployer.java:925)
                            09:10:21,256 INFO [STDOUT] at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:789)
                            09:10:21,256 INFO [STDOUT] at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:753)
                            09:10:21,256 INFO [STDOUT] at sun.reflect.GeneratedMethodAccessor16.invoke(Unknown Source)
                            09:10:21,256 INFO [STDOUT] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
                            
                            09:10:21,256 INFO [STDOUT] at java.lang.reflect.Method.invoke(Method.java:585)
                            09:10:21,256 INFO [STDOUT] at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:141)
                            09:10:21,256 INFO [STDOUT] at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
                            09:10:21,256 INFO [STDOUT] at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:118)
                            09:10:21,256 INFO [STDOUT] at org.jboss.mx.server.Invocation.invoke(Invocation.java:74)
                            09:10:21,256 INFO [STDOUT] at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:127)
                            09:10:21,256 INFO [STDOUT] at org.jboss.mx.server.Invocation.invoke(Invocation.java:74)
                            09:10:21,256 INFO [STDOUT] at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:245)
                            09:10:21,256 INFO [STDOUT] at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:644)
                            09:10:21,256 INFO [STDOUT] at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:176)
                            09:10:21,256 INFO [STDOUT] at $Proxy9.deploy(Unknown Source)
                            09:10:21,256 INFO [STDOUT] at org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymentScanner.java:319)
                            09:10:21,256 INFO [STDOUT] at org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:507)
                            
                            09:10:21,256 INFO [STDOUT] at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.doScan(AbstractDeploymentScanner.java:192)
                            09:10:21,256 INFO [STDOUT] at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.loop(AbstractDeploymentScanner.java:203)
                            09:10:21,256 INFO [STDOUT] at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.run(AbstractDeploymentScanner.java:182)
                            09:10:21,349 INFO [STDOUT] [warn] AOP Instrumentor failed to transform $Proxy61
                            09:10:21,349 INFO [STDOUT] java.lang.RuntimeException: java.lang.NullPointerException
                            09:10:21,349 INFO [STDOUT] at org.jboss.aop.pointcut.Util.matchesClassExpr(Util.java:65)
                            09:10:21,349 INFO [STDOUT] at org.jboss.aop.pointcut.MethodMatcher.matchesClass(MethodMatcher.java:163)
                            09:10:21,349 INFO [STDOUT] at org.jboss.aop.pointcut.MethodMatcher.matches(MethodMatcher.java:72)
                            09:10:21,349 INFO [STDOUT] at org.jboss.aop.pointcut.MethodMatcher.visit(MethodMatcher.java:66)
                            09:10:21,349 INFO [STDOUT] at org.jboss.aop.pointcut.ast.ASTMethod.jjtAccept(ASTMethod.java:23)
                            09:10:21,349 INFO [STDOUT] at org.jboss.aop.pointcut.ExecutionMethodMatcher.visit(ExecutionMethodMatcher.java:43)
                            09:10:21,349 INFO [STDOUT] at org.jboss.aop.pointcut.ast.ASTExecution.jjtAccept(ASTExecution.java:17)
                            09:10:21,349 INFO [STDOUT] at org.jboss.aop.pointcut.MatcherHelper.visit(MatcherHelper.java:77)
                            09:10:21,349 INFO [STDOUT] at org.jboss.aop.pointcut.MatcherHelper.matches(MatcherHelper.java:72)
                            09:10:21,349 INFO [STDOUT] at org.jboss.aop.pointcut.PointcutExpression.matchesExecution(PointcutExpression.java:159)
                            09:10:21,349 INFO [STDOUT] at org.jboss.aop.pointcut.ExecutionMethodMatcher.resolvePointcut(ExecutionMethodMatcher.java:51)
                            09:10:21,349 INFO [STDOUT] at org.jboss.aop.pointcut.MatcherHelper.visit(MatcherHelper.java:132)
                            09:10:21,349 INFO [STDOUT] at org.jboss.aop.pointcut.ast.ASTPointcut.jjtAccept(ASTPointcut.java:21)
                            09:10:21,349 INFO [STDOUT] at org.jboss.aop.pointcut.MatcherHelper.visit(MatcherHelper.java:123)
                            09:10:21,349 INFO [STDOUT] at org.jboss.aop.pointcut.ast.ASTOr.jjtAccept(ASTOr.java:17)
                            09:10:21,349 INFO [STDOUT] at org.jboss.aop.pointcut.MatcherHelper.visit(MatcherHelper.java:107)
                            09:10:21,349 INFO [STDOUT] at org.jboss.aop.pointcut.ast.ASTSub.jjtAccept(ASTSub.java:17)
                            09:10:21,349 INFO [STDOUT] at org.jboss.aop.pointcut.MatcherHelper.visit(MatcherHelper.java:87)
                            09:10:21,349 INFO [STDOUT] at org.jboss.aop.pointcut.ast.ASTBoolean.jjtAccept(ASTBoolean.java:17)
                            09:10:21,349 INFO [STDOUT] at org.jboss.aop.pointcut.MatcherHelper.visit(MatcherHelper.java:77)
                            09:10:21,349 INFO [STDOUT] at org.jboss.aop.pointcut.MatcherHelper.matches(MatcherHelper.java:72)
                            09:10:21,349 INFO [STDOUT] at org.jboss.aop.pointcut.PointcutExpression.matchesExecution(PointcutExpression.java:159)
                            09:10:21,349 INFO [STDOUT] at org.jboss.aop.instrument.JoinpointClassifier$4.matches(JoinpointClassifier.java:96)
                            09:10:21,349 INFO [STDOUT] at org.jboss.aop.instrument.JoinpointSimpleClassifier.classifyJoinpoint(JoinpointSimpleClassifier.java:51)
                            09:10:21,349 INFO [STDOUT] at org.jboss.aop.instrument.JoinpointClassifier.classifyMethodExecution(JoinpointClassifier.java:158)
                            09:10:21,349 INFO [STDOUT] at org.jboss.aop.instrument.MethodExecutionTransformer.classifyMethods(MethodExecutionTransformer.java:80)
                            09:10:21,349 INFO [STDOUT] at org.jboss.aop.instrument.MethodExecutionTransformer.instrument(MethodExecutionTransformer.java:181)
                            09:10:21,349 INFO [STDOUT] at org.jboss.aop.instrument.Instrumentor.transform(Instrumentor.java:630)
                            09:10:21,349 INFO [STDOUT] at org.jboss.aop.AspectManager.translate(AspectManager.java:754)
                            09:10:21,349 INFO [STDOUT] at org.jboss.aop.AspectManager.transform(AspectManager.java:666)
                            09:10:21,365 INFO [STDOUT] at org.jboss.aop.standalone.AOPTransformer.aspectTransform(AOPTransformer.java:62)
                            09:10:21,365 INFO [STDOUT] at org.jboss.aop.standalone.AOPTransformer.transform(AOPTransformer.java:54)
                            09:10:21,365 INFO [STDOUT] at sun.instrument.TransformerManager.transform(TransformerManager.java:122)
                            09:10:21,365 INFO [STDOUT] at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:155)
                            09:10:21,365 INFO [STDOUT] at java.lang.reflect.Proxy.defineClass0(Native Method)
                            09:10:21,365 INFO [STDOUT] at java.lang.reflect.Proxy.getProxyClass(Proxy.java:487)
                            09:10:21,365 INFO [STDOUT] at java.lang.reflect.Proxy.newProxyInstance(Proxy.java:564)
                            09:10:21,365 INFO [STDOUT] at org.jboss.aop.annotation.AnnotationProxy.createProxy(AnnotationProxy.java:91)
                            09:10:21,365 INFO [STDOUT] at org.jboss.aop.AspectAnnotationLoader.deployTypedefs(AspectAnnotationLoader.java:642)
                            09:10:21,365 INFO [STDOUT] at org.jboss.aop.AspectAnnotationLoader.deployInputStreamIterator(AspectAnnotationLoader.java:115)
                            09:10:21,365 INFO [STDOUT] at org.jboss.aop.deployment.AspectDeployer.create(AspectDeployer.java:144)
                            09:10:21,365 INFO [STDOUT] at org.jboss.deployment.MainDeployer.create(MainDeployer.java:935)
                            09:10:21,365 INFO [STDOUT] at org.jboss.deployment.MainDeployer.create(MainDeployer.java:925)
                            09:10:21,365 INFO [STDOUT] at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:789)
                            09:10:21,365 INFO [STDOUT] at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:753)
                            09:10:21,365 INFO [STDOUT] at sun.reflect.GeneratedMethodAccessor16.invoke(Unknown Source)
                            09:10:21,365 INFO [STDOUT] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
                            
                            09:10:21,365 INFO [STDOUT] at java.lang.reflect.Method.invoke(Method.java:585)
                            09:10:21,365 INFO [STDOUT] at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:141)
                            09:10:21,365 INFO [STDOUT] at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
                            09:10:21,365 INFO [STDOUT] at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:118)
                            09:10:21,365 INFO [STDOUT] at org.jboss.mx.server.Invocation.invoke(Invocation.java:74)
                            09:10:21,365 INFO [STDOUT] at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:127)
                            09:10:21,365 INFO [STDOUT] at org.jboss.mx.server.Invocation.invoke(Invocation.java:74)
                            09:10:21,365 INFO [STDOUT] at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:245)
                            09:10:21,365 INFO [STDOUT] at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:644)
                            09:10:21,365 INFO [STDOUT] at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:176)
                            09:10:21,365 INFO [STDOUT] at $Proxy9.deploy(Unknown Source)
                            09:10:21,365 INFO [STDOUT] at org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymentScanner.java:319)
                            09:10:21,365 INFO [STDOUT] at org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:507)
                            
                            09:10:21,365 INFO [STDOUT] at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.doScan(AbstractDeploymentScanner.java:192)
                            09:10:21,365 INFO [STDOUT] at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.loop(AbstractDeploymentScanner.java:203)
                            09:10:21,365 INFO [STDOUT] at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.run(AbstractDeploymentScanner.java:182)
                            09:10:21,365 INFO [STDOUT] Caused by: java.lang.NullPointerException
                            09:10:21,365 INFO [STDOUT] at org.jboss.aop.pointcut.Util.matchesTypedef(Util.java:301)
                            09:10:21,365 INFO [STDOUT] at org.jboss.aop.pointcut.Util.matchesClassExpr(Util.java:56)
                            09:10:21,365 INFO [STDOUT] ... 62 more
                            09:10:21,412 INFO [AspectDeployer] Deployed AOP: file:/C:/jboss-4.0.3/server/all/tmp/deploy/tmp738aopexample.ear-contents/aopexamplelib.aop
                            09:10:23,131 INFO [EjbModule] Deploying ExampleSession
                            09:10:24,006 INFO [ProxyFactory] Bound EJB Home 'ExampleSession' to jndi 'ExampleSession'
                            09:10:24,006 INFO [EJBDeployer] Deployed: file:/C:/jboss-4.0.3/server/all/tmp/deploy/tmp738aopexample.ear-contents/aopexampleejb.jar
                            09:10:24,193 INFO [TomcatDeployer] deploy, ctxPath=/aopexample, warUrl=.../tmp/deploy/tmp738aopexample.ear-contents/aopexample-exp.war/
                            09:10:24,459 INFO [EARDeployer] Started J2EE application: file:/C:/jboss-4.0.3/server/all/deploy/aopexample.ear
                            09:10:29,631 INFO [STDOUT] <<< Entering SimpleInterceptor: invocation class: org.jboss.injbossaop.web.EarExampleServlet$service_8586428322187484014 type: Method Invocation method: service Class containing method: org.jboss.injbossaop.web.EarExampleServlet
                            09:10:29,646 INFO [STDOUT] **** EarExampleServlet.service()
                            09:10:29,959 INFO [STDOUT] <<< Entering SimpleInterceptor: invocation class: org.jboss.injbossaop.ejb.ExampleSessionBean$getValue_8555731906870343793 type: Method Invocation method: getValue Class containing method: org.jboss.injbossaop.ejb.ExampleSessionBean
                            09:10:29,959 INFO [STDOUT] *** ExampleSessionBean.getValue()
                            09:10:29,975 INFO [STDOUT] <<< Entering SimpleInterceptor: invocation class: org.jboss.injbossaop.lib.ExampleValue1OptimizedConstructorInvocation type: Constructor Invocation constructor: public org.jboss.injbossaop.lib.ExampleValue(java.lang.String)
                            09:10:29,975 INFO [STDOUT] **** ExampleValue String Constructor
                            09:10:29,975 INFO [STDOUT] >>> Leaving SimpleInterceptor
                            09:10:29,975 INFO [STDOUT] >>> Leaving SimpleInterceptor
                            09:10:30,131 INFO [STDOUT] <<< Entering SimpleInterceptor: invocation class: org.jboss.injbossaop.lib.ExampleValue1OptimizedConstructorInvocation type: Constructor Invocation constructor: public org.jboss.injbossaop.lib.ExampleValue(java.lang.String)
                            09:10:30,131 INFO [STDOUT] **** ExampleValue String Constructor
                            09:10:30,131 INFO [STDOUT] >>> Leaving SimpleInterceptor
                            09:10:31,209 INFO [STDOUT] <<< Entering SimpleInterceptor: invocation class: org.jboss.injbossaop.lib.ExampleValue$getMessage_5353407034680111516 type: Method Invocation method: getMessage Class containing method: org.jboss.injbossaop.lib.ExampleValue
                            09:10:31,209 INFO [STDOUT] **** ExampleValue.getMessage()
                            09:10:31,209 INFO [STDOUT] >>> Leaving SimpleInterceptor
                            09:10:31,303 INFO [STDOUT] >>> Leaving SimpleInterceptor