[aspectwerkz-user] Problem with offline weaving: NoAspectBound: Could not find Aspec tDefinition
"Kaplun, Ilya" <[email protected]>
| Newsgroups | gmane.comp.java.aspectwerkz.user |
|---|---|
| Message-ID | <C2665A362EEB9545B46219414A8C4F3001665CB0@wa-exchange01> |
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