  | Mailing List | | Home | | Forum Home | | JBoss - Java Application Server | | Tomcat - JSP/Servlet container | | Struts - A MVC web framework | | iText - An open source PDF Java Library | | JDOM - JDOM XML Parser | | J2EE - A mailing list for Java(tm) 2 Platform, Enterprise Edition | | JSP - A mailing list about Java Server Pages specification and reference | | J2EE Pattern - An interest list for Sun Java Center J2EE Pattern Catalog | | Servlet - A mailing list for discussion about Sun Microsystem's Java Servlet API Technology | |
Struts & Hibernate
|
|
|
  | | | - TestNG / loadtime AOP with JBoss Embeddable | - TestNG / loadtime AOP with JBoss Embeddable 2007-07-19 - By mosterma
Back 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 (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 (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 (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 (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 jboss-user@(protected) https://lists.jboss.org/mailman/listinfo/jboss-user
|
|
 |