Ok, here is the scenario: I'm trying to develop a webapplication using aop to implement role based security (I don't believe the pre-defined Security aspects will be sufficient)
I have written the annotations into the aspect class but wrote the jboss-aop.xml file aswell so I could try to use either precompiled or loadtime weaving. I believe loadtime weaving is preferred for web applications (is this incorrect?) I'm using jboss-4.0.5GA and installed jboss-aop-jdk50.deployer and setup the pluggable-instrumentor.jar in run.bat I have written the Servelt and Aspect classes: Servlet: | package com.dlens; | | import javax.servlet.Servlet; | import javax.servlet.ServletException; | import javax.servlet.ServletRequest; | import javax.servlet.ServletResponse; | import javax.servlet.http.HttpServlet; | | public class myServlet extends HttpServlet { | | public void test() { | System.out.println("This is my test servlet function"); | } | | public void service(ServletRequest req, ServletResponse res) | throws ServletException, java.io.IOException { | test(); | } | } | Aspect: | package test.dlens; | | import org.jboss.aop.advice.Scope; | import org.jboss.aop.joinpoint.Invocation; | import org.jboss.aop.Bind; | import org.jboss.aop.Aspect; | | @Aspect(scope=Scope.PER_VM) | public class myAspect { | | @Bind(pointcut="call(* com.dlens.myServlet->*(..) )") | public Object trace(Invocation invocation) throws Throwable { | try { | System.out.println("enter jointpoint"); | return invocation.invokeNext(); | } finally { | System.out.println("leave joinpoint"); | } | } | | } | War deployment descriptor: | <?xml version="1.0" encoding="UTF-8"?> | <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.4//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd"> | <web-app> | <display-name>Test</display-name> | <description>Test</description> | | <servlet> | <servlet-name>testServ</servlet-name> | <servlet-class>com.dlens.myServlet</servlet-class> | </servlet> | | | <servlet-mapping> | <servlet-name>testServ</servlet-name> | <url-pattern>/testServ/*</url-pattern> | </servlet-mapping> | | </web-app> | jboss-aop.xml | <?xml version="1.0" encoding="UTF-8"?> | <aop> | <aspect class="test.dlens.myAspect" scope="PER_VM"/> | <bind pointcut="call(* com.dlens.myServlet->*(..) )"> | <advice name="myAdvice" asepct="test.dlens.myAspect" /> | </bind> | </aop> | So far I have tried a variety of approaches for packaging and deployment as described here: http://labs.jboss.com/portal/jbossaop/docs/1.5.0.GA/docs/aspect-framework/examples/injboss/aopInJbossPackaging.html with little success so far. When the deployment of the pacakge occurs I continue to get the following exception: anonymous wrote : | 12:57:22,250 ERROR [STDERR] [error] advice myAdvice cannot find aspect jar:file:/C:/jboss-4.0.5.GA/server/all/tmp/deploy/tmp52702test.jar-contents/aspects | .aop!/META-INF/jboss-aop.xml | 12:57:22,265 ERROR [STDERR] java.lang.RuntimeException: java.lang.RuntimeException: advice myAdvice cannot find aspect | 12:57:22,265 ERROR [STDERR] at org.jboss.aop.AspectXmlLoader.deployXML(AspectXmlLoader.java:892) | 12:57:22,265 ERROR [STDERR] at org.jboss.aop.AspectXmlLoader.deploy(AspectXmlLoader.java:1206) | 12:57:22,265 ERROR [STDERR] at org.jboss.aop.AspectXmlLoader.deployXML(AspectXmlLoader.java:1232) | 12:57:22,265 ERROR [STDERR] at org.jboss.aop.deployment.AspectDeployer.create(AspectDeployer.java:167) | 12:57:22,265 ERROR [STDERR] at org.jboss.deployment.MainDeployer.create(MainDeployer.java:969) | 12:57:22,265 ERROR [STDERR] at org.jboss.deployment.MainDeployer.create(MainDeployer.java:959) | 12:57:22,265 ERROR [STDERR] at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:818) | 12:57:22,265 ERROR [STDERR] at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782) | 12:57:22,265 ERROR [STDERR] at sun.reflect.GeneratedMethodAccessor24.invoke(Unknown Source) | 12:57:22,265 ERROR [STDERR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) | 12:57:22,265 ERROR [STDERR] at java.lang.reflect.Method.invoke(Method.java:585) | 12:57:22,265 ERROR [STDERR] at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155) | 12:57:22,265 ERROR [STDERR] at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94) | 12:57:22,265 ERROR [STDERR] at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133) | 12:57:22,265 ERROR [STDERR] at org.jboss.mx.server.Invocation.invoke(Invocation.java:88) | 12:57:22,265 ERROR [STDERR] at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142) | 12:57:22,265 ERROR [STDERR] at org.jboss.mx.server.Invocation.invoke(Invocation.java:88) | 12:57:22,265 ERROR [STDERR] at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264) | 12:57:22,265 ERROR [STDERR] at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) | 12:57:22,265 ERROR [STDERR] at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210) | 12:57:22,265 ERROR [STDERR] at $Proxy8.deploy(Unknown Source) | 12:57:22,265 ERROR [STDERR] at org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymentScanner.java:421) | 12:57:22,265 ERROR [STDERR] at org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:634) | 12:57:22,265 ERROR [STDERR] at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.doScan(AbstractDeploymentScanner.java:263) | 12:57:22,265 ERROR [STDERR] at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.loop(AbstractDeploymentScanner.java:274) | 12:57:22,265 ERROR [STDERR] at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.run(AbstractDeploymentScanner.java:225) | 12:57:22,265 ERROR [STDERR] Caused by: java.lang.RuntimeException: advice myAdvice cannot find aspect | 12:57:22,265 ERROR [STDERR] at org.jboss.aop.AspectXmlLoader.deployAdvice(AspectXmlLoader.java:223) | 12:57:22,265 ERROR [STDERR] at org.jboss.aop.AspectXmlLoader.loadInterceptors(AspectXmlLoader.java:382) | 12:57:22,265 ERROR [STDERR] at org.jboss.aop.AspectXmlLoader.deployBinding(AspectXmlLoader.java:274) | 12:57:22,265 ERROR [STDERR] at org.jboss.aop.AspectXmlLoader.deployTopElements(AspectXmlLoader.java:1038) | 12:57:22,265 ERROR [STDERR] at org.jboss.aop.AspectXmlLoader.deployXML(AspectXmlLoader.java:886) | 12:57:22,265 ERROR [STDERR] ... 25 more | 12:57:22,281 ERROR [MainDeployer] Could not create deployment: file:/C:/jboss-4.0.5.GA/server/all/tmp/deploy/tmp52702test.jar-contents/aspects.aop | org.jboss.deployment.DeploymentException: java.lang.RuntimeException: advice myAdvice cannot find aspect ; - nested throwable: (java.lang.RuntimeException: | java.lang.RuntimeException: advice myAdvice cannot find aspect ) | at org.jboss.aop.deployment.AspectDeployer.create(AspectDeployer.java:175) | at org.jboss.deployment.MainDeployer.create(MainDeployer.java:969) | at org.jboss.deployment.MainDeployer.create(MainDeployer.java:959) | at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:818) | at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782) | at sun.reflect.GeneratedMethodAccessor24.invoke(Unknown Source) | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) | at java.lang.reflect.Method.invoke(Method.java:585) | at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155) | at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94) | at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133) | at org.jboss.mx.server.Invocation.invoke(Invocation.java:88) | at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142) | at org.jboss.mx.server.Invocation.invoke(Invocation.java:88) | at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264) | at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) | at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210) | at $Proxy8.deploy(Unknown Source) | at org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymentScanner.java:421) | at org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:634) | at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.doScan(AbstractDeploymentScanner.java:263) | at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.loop(AbstractDeploymentScanner.java:274) | at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.run(AbstractDeploymentScanner.java:225) | Caused by: java.lang.RuntimeException: java.lang.RuntimeException: advice myAdvice cannot find aspect | at org.jboss.aop.AspectXmlLoader.deployXML(AspectXmlLoader.java:892) | at org.jboss.aop.AspectXmlLoader.deploy(AspectXmlLoader.java:1206) | at org.jboss.aop.AspectXmlLoader.deployXML(AspectXmlLoader.java:1232) | at org.jboss.aop.deployment.AspectDeployer.create(AspectDeployer.java:167) | ... 22 more | Caused by: java.lang.RuntimeException: advice myAdvice cannot find aspect | at org.jboss.aop.AspectXmlLoader.deployAdvice(AspectXmlLoader.java:223) | at org.jboss.aop.AspectXmlLoader.loadInterceptors(AspectXmlLoader.java:382) | at org.jboss.aop.AspectXmlLoader.deployBinding(AspectXmlLoader.java:274) | at org.jboss.aop.AspectXmlLoader.deployTopElements(AspectXmlLoader.java:1038) | at org.jboss.aop.AspectXmlLoader.deployXML(AspectXmlLoader.java:886) | ... 25 more | So I tried simplifying things and ONLY deploying a .aop archive.. with: META-INF/jboss-aop.xml test/dlens/myAspect.class and get the same exception I've tried deploying the war file (test.war): WEB-INF/web.xml WEB-INF/classes/com/dlens/myServlet.class I've also tried deploying test.jar with: test.aop test.war and I still recieve the same exception... Can anyone point out where I've gone wrong? I know I can define all my pointcuts and aspects through the xml descriptor, I can define all this through annotations, or a combination of the two. Is this a classloader issue? Also.. about annotations. Does annotationC only need to be used for jdk1.4? I'm using 1.5.0._06-b05 Also do I need to run aopc for the same reasons? I've tried with and without (perhaps incorrectly!) but I thought this was handled by loadtime weaving. Any ideas? Thanks -Keith View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3988440#3988440 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3988440 _______________________________________________ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user