Re: [aspectwerkz-user] Problem with offline weaving: NoAspectBound: Could not find Aspec tDefinition
Jing Xue <[email protected]>
| Newsgroups | gmane.comp.java.aspectwerkz.user |
|---|---|
| Message-ID | <[email protected]> |
I had some similar problem couple weeks back. Try use genjp="false",
and put aop.xml in the META-INF of your end jar.
--Jing Xue
Kaplun, Ilya wrote:
>Hello,
>
>I have recently started using AspectWerkz, and am having a lot of trouble
>getting my first aspect up and running. I am trying to weave the aspect
>offline using the ant task, and then deploy to a Catalina servlet container.
>
>
>The compilation and weaving happens without errors. If I have the "genjp"
>option set to false, the aspect methods are just never called. If I set
>"genjp" to true, and include the built aspect class in my end jar file, I
>get the following error:
>
>org.codehaus.aspectwerkz.aspect.management.NoAspectBoundException:
>NoAspectBound: NoAspectBound: Could not find AspectDefinition
>- nat_srv_java/LoggingAspect
>
>Thanks in advance for your help!
>
>Ilya
>
>
>#########################Ant Weaving Task
>Call####################################
> <target name="aw-weave" if="weave">
> <!-- Weave AspectWerkz Aspects -->
> <awc
> verbose="true"
> taskverbose="true"
> genjp="true"
> definition="${basedir}/src/aop.xml"
> classpathref="project.classpath">
> <target path="${build}"/>
> </awc>
>
>#########################LoggingAspect######################################
>#
>package com.abc.mt.logging;
>
>import org.codehaus.aspectwerkz.AspectContext;
>import org.codehaus.aspectwerkz.joinpoint.JoinPoint;
>import org.codehaus.aspectwerkz.joinpoint.StaticJoinPoint;
>import org.codehaus.aspectwerkz.joinpoint.MethodRtti;
>import org.apache.commons.logging.Log;
>import org.apache.commons.logging.LogFactory;
>
>public class LoggingAspect {
>
> public LoggingAspect() {
> }
>
>
> public Object trace(JoinPoint joinPoint) throws Throwable {
> System.out.println("LoggingAspect.trace");
> Class theClass = joinPoint.getClass();
> Log log = LogFactory.getLog(theClass);
> if (log.isTraceEnabled()) {
> MethodRtti mrtti=(MethodRtti)joinPoint.getRtti();
> String methodName = mrtti.getMethod().getName();
> log.trace("Entering "+methodName);
> Object returnValue=joinPoint.proceed();
> log.trace("Exiting "+methodName);
> return returnValue;
> } else {
> return joinPoint.proceed();
> }
> }
>}
>
>
>#########################aop.xml#######################################
>
><!DOCTYPE aspectwerkz PUBLIC
> "-//AspectWerkz//DTD 2.0//EN"
> "http://aspectwerkz.codehaus.org/dtd/aspectwerkz_2_0.dtd">
><aspectwerkz>
> <system id="nat_srv_java">
> <aspect class="com.abc.mt.logging.LoggingAspect"
>name="LoggingAspect">
> <pointcut name="allMethods" expression="execution(*
>com.abc.mt.nat.Server.setServletContext(..))"/>
> <advice name="trace(JoinPoint)" type="around"
>bind-to="allMethods"/>
> </aspect>
> </system>
></aspectwerkz>
>
>
>#########################Pointcut
>Location#######################################
>package com.abc.mt.nat;
>
>public class Server {
> public void setServletContext(ServletContext sc) {
> this.sc=sc;
> }
>}
>
>#########################tomcat exception
>trace#######################################
>
>2005-05-05 14:51:16,198 [Thread-1] ERROR: Exception sending context
>initialized event to listener instance of class
>com.abc.mt.nat.StartupContextListener
> [localhost].[/nat_srv_webapp]
>java.lang.ExceptionInInitializerError
> at com.abc.mt.nat.Server.setServletContext(Server.java)
> at
>com.abc.mt.nat.StartupContextListener.contextInitialized(StartupContextListe
>ner.java:40)
> at
>org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:
>3669)
> at
>org.apache.catalina.core.StandardContext.start(StandardContext.java:4104)
> at
>org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:7
>59)
> at
>org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739)
> at
>org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524)
> at
>org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:788)
> at
>org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:677)
> at
>org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:473)
> at
>org.apache.catalina.startup.HostConfig.start(HostConfig.java:1102)
> at
>org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
> at
>org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSuppor
>t.java:119)
> at
>org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1020)
> at
>org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
> at
>org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1012)
> at
>org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
> at
>org.apache.catalina.core.StandardService.start(StandardService.java:450)
> at
>org.apache.catalina.core.StandardServer.start(StandardServer.java:683)
> at org.apache.catalina.startup.Catalina.start(Catalina.java:537)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:271)
> at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:409)
>Caused by:
>org.codehaus.aspectwerkz.aspect.management.NoAspectBoundException:
>NoAspectBound: NoAspectBound: Could not find As
>pectDefinition - nat_srv_java/LoggingAspect
> at
>org.codehaus.aspectwerkz.aspect.management.Aspects.aspect$Of(Aspects.java:18
>6)
> at
>com.abc.mt.nat.Server_1__1738791317__356879184___AW_JoinPoint.aw$staticiniti
>alization(Unknown Source)
> at
>com.abc.mt.nat.Server_1__1738791317__356879184___AW_JoinPoint.<clinit>(Unkno
>wn Source)
> ... 26 more
>Caused by:
>org.codehaus.aspectwerkz.aspect.management.NoAspectBoundException:
>NoAspectBound: Could not find AspectDefinition
>- nat_srv_java/LoggingAspect
> at
>org.codehaus.aspectwerkz.aspect.management.Aspects.lookupAspectDefinition(As
>pects.java:309)
> at
>org.codehaus.aspectwerkz.aspect.management.Aspects.createAspectContainer(Asp
>ects.java:223)
> at
>org.codehaus.aspectwerkz.aspect.management.Aspects.getContainerQNamed(Aspect
>s.java:84)
> at
>org.codehaus.aspectwerkz.aspect.management.Aspects.aspect$Of(Aspects.java:18
>4)
> ... 28 more
>
>