Re: [aspectwerkz-user] Problem with offline weaving: NoAspectBound: Could not find Aspec tDefinition

Alexandre Vasseur <[email protected]>
Newsgroups gmane.comp.java.aspectwerkz.user
Message-ID <[email protected]>
That 's right.
You should use the "genjp" option only when it is absolutely required.
This option was made mainly for a user that wants to deploy on
embedded devices.
This option has serious implication as regards f.e. changing
deployment time configuration in the aop.xml etc. I must admit our doc
makes it very unclear. I'll make sure we change that.

So just don't use this option (it defaults to false) when using
offline compilation.
Aside, as Jing says, make sure the aop.xml is somewehre in a
META-INF/aop.xml in your classpath (if you deploy a webapp, put it in
webapp.war/classes/META-INF/aop.xml, or
webapp.war/lib/anyjar.jar/META-INF/aop.xml f.e.)

My third note would be to not use the "name" attribute in : "<aspect
class="..." name="...">" unless you are using this aspect more than
once in your system and want to have different versions of it with
different parameters, or deployment time defined pointcut.
In most cases you don't need to use "name" so just use: "<aspect class="...">

Alex

On 5/6/05, Jing Xue <[email protected]> wrote:
> 
> 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
> >
> >
> 
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.