Hi there, I created an AOP aspect which uses a Log4Logger to trace method invocations. A corresponding TestNG test first starts an embeddable JBoss EJB container and invokes the methods I want to trace.
Everything works fine when I precompile my classes with the AopC ant task. However, I would like to use loadtime weaving with the embeddable container. Hence, I added the following to the jboss-service.xml of the embeddable container: <mbean code="org.jboss.aop.deployment.AspectManagerServiceJDK5" | name="jboss.aop:service=AspectManager"> | <attribute name="EnableLoadtimeWeaving">true</attribute> | <attribute name="SuppressTransformationErrors">true</attribute> | <attribute name="Prune">true</attribute> | <attribute name="Include">com.giag.fo.*Impl.class</attribute> | <attribute name="Exclude">org.jboss., org.apache.</attribute> | <!-- This avoids instrumentation of hibernate cglib enhanced proxies | <attribute name="Ignore">*$$EnhancerByCGLIB$$*</attribute> --> | <attribute name="Optimized">true</attribute> | <attribute name="Verbose">false</attribute> | </mbean> The aspect deployer was already registered. Furthermore, I added the -javaagent JVM argument to the TestNG runner with a reference to the pluggable-instrumentor.jar. All works fine so far, i.e. the loadtime aspectizer starts working and matches the desired pointcuts. However it fails in perfoming the actual instrumentation. Here is the exception stack trace: javassist.NotFoundException: com.giag.fo.baan.common.ejb.ManufacturingMasterDataServiceImpl$JoinPoint_getMachineTypes7899684341335695723 | at javassist.ClassPool.get(ClassPool.java:417) | at org.jboss.aop.instrument.JoinPointGenerator.generateJoinpointClass(JoinPointGenerator.java:471) | at org.jboss.aop.instrument.JoinPointGenerator.doGenerateJoinPointClass(JoinPointGenerator.java:393) | at org.jboss.aop.instrument.JoinPointGenerator.access$100(JoinPointGenerator.java:67) | at org.jboss.aop.instrument.JoinPointGenerator$GenerateJoinPointClassAction$2.generateJoinPointClass(JoinPointGenerator.java:1683) | at org.jboss.aop.instrument.JoinPointGenerator.generateJoinPointClass(JoinPointGenerator.java:369) | at com.giag.fo.baan.common.ejb.ManufacturingMasterDataServiceImpl$ManufacturingMasterDataServiceImplAdvisor.getMachineTypes7899684341335695723(ManufacturingMasterDataServiceImpl$ManufacturingMasterDataServiceImplAdvisor.java) | at com.giag.fo.baan.common.ejb.ManufacturingMasterDataServiceImpl.getMachineTypes(ManufacturingMasterDataServiceImpl.java) | at com.giag.fo.baan.common.ejb.ManufacturingMasterDataServiceBean.getMachineTypes(ManufacturingMasterDataServiceBean.java:94) | at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) | at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) | at java.lang.reflect.Method.invoke(Method.java:585) | at org.jboss.aop.joinpoint.MethodInvocation.invokeTarget(MethodInvocation.java:121) | at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:110) | at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:166) | at org.jboss.ejb3.interceptor.EJB3InterceptorsInterceptor.invoke(EJB3InterceptorsInterceptor.java:63) | at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) | at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:54) | at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) | at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:47) | at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) | at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:79) | at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:193) | at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) | at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76) | at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) | at org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:62) | at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) | at org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:77) | at org.jboss.ejb3.security.Ejb3AuthenticationInterceptor.invoke(Ejb3AuthenticationInterceptor.java:105) | at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) | at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:46) | at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) | at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106) | at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) | at org.jboss.ejb3.stateless.StatelessContainer.localInvoke(StatelessContainer.java:214) | at org.jboss.ejb3.stateless.StatelessContainer.localInvoke(StatelessContainer.java:184) | at org.jboss.ejb3.stateless.StatelessLocalProxy.invoke(StatelessLocalProxy.java:81) | at $Proxy26.getMachineTypes(Unknown Source) | at com.giag.fo.baan.common.ejb.ManufacturingMasterDataServiceTest.getMachineTypes(ManufacturingMasterDataServiceTest.java:22) | at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) | at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) | at java.lang.reflect.Method.invoke(Method.java:585) | at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:604) | at org.testng.internal.Invoker.invokeMethod(Invoker.java:470) | at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:564) | at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:830) | at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:125) | at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109) | at org.testng.TestRunner.runWorkers(TestRunner.java:678) | at org.testng.TestRunner.privateRun(TestRunner.java:624) | at org.testng.TestRunner.run(TestRunner.java:495) | at org.testng.SuiteRunner.runTest(SuiteRunner.java:300) | at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:295) | at org.testng.SuiteRunner.privateRun(SuiteRunner.java:275) | at org.testng.SuiteRunner.run(SuiteRunner.java:190) | at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:792) | at org.testng.TestNG.runSuitesLocally(TestNG.java:765) | at org.testng.TestNG.run(TestNG.java:699) | at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73) | at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:122) | javax.ejb.EJBException: java.lang.RuntimeException: Error generating joinpoint class for joinpoint Method[method=public java.util.List com.giag.fo.baan.common.ejb.ManufacturingMasterDataServiceImpl.getMachineTypes(java.lang.String,boolean) throws com.giag.fo.folib.exception.FOException] | at org.jboss.ejb3.tx.Ejb3TxPolicy.handleExceptionInOurTx(Ejb3TxPolicy.java:63) | at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:83) | at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:193) | at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) | at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76) | at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) | at org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:62) | at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) | at org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:77) | at org.jboss.ejb3.security.Ejb3AuthenticationInterceptor.invoke(Ejb3AuthenticationInterceptor.java:105) | at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) | at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:46) | at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) | at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106) | at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) | at org.jboss.ejb3.stateless.StatelessContainer.localInvoke(StatelessContainer.java:214) | at org.jboss.ejb3.stateless.StatelessContainer.localInvoke(StatelessContainer.java:184) | at org.jboss.ejb3.stateless.StatelessLocalProxy.invoke(StatelessLocalProxy.java:81) | at $Proxy26.getMachineTypes(Unknown Source) | at com.giag.fo.baan.common.ejb.ManufacturingMasterDataServiceTest.getMachineTypes(ManufacturingMasterDataServiceTest.java:22) | at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) | at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) | at java.lang.reflect.Method.invoke(Method.java:585) | at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:604) | at org.testng.internal.Invoker.invokeMethod(Invoker.java:470) | at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:564) | at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:830) | at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:125) | at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109) | at org.testng.TestRunner.runWorkers(TestRunner.java:678) | at org.testng.TestRunner.privateRun(TestRunner.java:624) | at org.testng.TestRunner.run(TestRunner.java:495) | at org.testng.SuiteRunner.runTest(SuiteRunner.java:300) | at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:295) | at org.testng.SuiteRunner.privateRun(SuiteRunner.java:275) | at org.testng.SuiteRunner.run(SuiteRunner.java:190) | at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:792) | at org.testng.TestNG.runSuitesLocally(TestNG.java:765) | at org.testng.TestNG.run(TestNG.java:699) | at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73) | at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:122) | Caused by: java.lang.RuntimeException: Error generating joinpoint class for joinpoint Method[method=public java.util.List com.giag.fo.baan.common.ejb.ManufacturingMasterDataServiceImpl.getMachineTypes(java.lang.String,boolean) throws com.giag.fo.folib.exception.FOException] | at org.jboss.aop.instrument.JoinPointGenerator.doGenerateJoinPointClass(JoinPointGenerator.java:405) | at org.jboss.aop.instrument.JoinPointGenerator.access$100(JoinPointGenerator.java:67) | at org.jboss.aop.instrument.JoinPointGenerator$GenerateJoinPointClassAction$2.generateJoinPointClass(JoinPointGenerator.java:1683) | at org.jboss.aop.instrument.JoinPointGenerator.generateJoinPointClass(JoinPointGenerator.java:369) | at com.giag.fo.baan.common.ejb.ManufacturingMasterDataServiceImpl$ManufacturingMasterDataServiceImplAdvisor.getMachineTypes7899684341335695723(ManufacturingMasterDataServiceImpl$ManufacturingMasterDataServiceImplAdvisor.java) | at com.giag.fo.baan.common.ejb.ManufacturingMasterDataServiceImpl.getMachineTypes(ManufacturingMasterDataServiceImpl.java) | at com.giag.fo.baan.common.ejb.ManufacturingMasterDataServiceBean.getMachineTypes(ManufacturingMasterDataServiceBean.java:94) | at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) | at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) | at java.lang.reflect.Method.invoke(Method.java:585) | at org.jboss.aop.joinpoint.MethodInvocation.invokeTarget(MethodInvocation.java:121) | at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:110) | at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:166) | at org.jboss.ejb3.interceptor.EJB3InterceptorsInterceptor.invoke(EJB3InterceptorsInterceptor.java:63) | at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) | at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:54) | at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) | at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:47) | at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) | at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:79) | ... 40 more | Caused by: javassist.NotFoundException: com.giag.fo.baan.common.ejb.ManufacturingMasterDataServiceImpl$JoinPoint_getMachineTypes7899684341335695723 | at javassist.ClassPool.get(ClassPool.java:417) | at org.jboss.aop.instrument.JoinPointGenerator.generateJoinpointClass(JoinPointGenerator.java:471) | at org.jboss.aop.instrument.JoinPointGenerator.doGenerateJoinPointClass(JoinPointGenerator.java:393) | ... 60 more Any help will be greatly appreciated. Thanks in advance! View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4065694#4065694 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4065694 _______________________________________________ jboss-user mailing list [email protected] https://lists.jboss.org/mailman/listinfo/jboss-user
