|
|
Is aspectJ compatible with spring2.0 for logging?
Hi Everybody,
Is it possible to achieve logging using AspectJ along with spring2.0 and j2sdk1.4.2_10.
I am able to achieve logging using aspectJ for classes that are instantiated by me. But for the classes that are instantiated using Spring that is defined in my xml, i get the following error,Code:
Caused by: org..beans.factory.BeanCreationException: Error creating bean with name 'lt;bean namegt;' defined in PortletContext resource [/WEB-INF/context/portlet/MeetingPlannerPortlet.xml]: Instantiation of bean failed; nested exception is java.lang.NoSuchMethodError: org.aspectj.runtime.reflect.Factory.makeSJP(Ljava/lang/String;Lorg/aspectj/lang/Signature;I)Lorg/aspectj/lang/JoinPoint$StaticPart;
at org..beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:443)
at org..beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:245)
at org..beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:140)
at org..beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:242)
at org..beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:156)
at org..beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:273)
at org..context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:346)
at org..web.portlet.context.AbstractRefreshablePortletApplicationContext.refresh(AbstractRefreshablePortletApplicationContext.java:162)
at org..web.portlet.FrameworkPortlet.createPortletApplicationContext(FrameworkPortlet.java:352)
at org..web.portlet.FrameworkPortlet.initPortletApplicationContext(FrameworkPortlet.java:299)
at org..web.portlet.FrameworkPortlet.initPortletBean(FrameworkPortlet.java:269)
at org..web.portlet.GenericPortletBean.init(GenericPortletBean.java:114)
at javax.portlet.GenericPortlet.init(GenericPortlet.java:85)
at com.vignette.portal.portlet.jsrcontainer.internal.standardcontainer.invocation.PortletCommandImpl.instantiatePortlet(PortletCommandImpl.java:54)
at com.vignette.portal.portlet.jsrcontainer.PortletCommandServlet.service(PortletCommandServlet.java:103)
... 69 more
Caused by: java.lang.NoSuchMethodError: org.aspectj.runtime.reflect.Factory.makeSJP(Ljava/lang/String;Lorg/aspectj/lang/Signature;I)Lorg/aspectj/lang/JoinPoint$StaticPart;
at com.ameriprise.fa.web.inter.bean.view.meetingplanner.MeetingPlannerConfirmationViewBean.lt;clinitgt;(MeetingPlannerConfirmationViewBean.java:1)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
at org..beans.BeanUtils.instantiateClass(BeanUtils.java:84)
at org..beans.BeanUtils.instantiateClass(BeanUtils.java:60)
at org..beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:52)
at org..beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:640)
at org..beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:626)
at org..beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:381)
... 83 more
FYI, my aspect file is,
Code:
public aspect TraceAspectV5
{ //AspectJ using System.out.println //pointcut traceMethods() : (execution(* *.*(..)) // || execution(*.new(..))) amp;amp; !within(TraceAspectV5);
//pointcut traceMethods() : !execution(* *.set*(..)) amp;amp; !within(TraceAspectV5); pointcut traceMethods() : (execution(* *.*(..))) amp;amp; !within(TraceAspectV5); before() : traceMethods() { Signature sig = thisJoinPointStaticPart.getSignature(); System.out.println(quot;###########################################################################quot;); System.out.println(quot;Entering [quot;+ sig.getDeclaringType().getName() + quot;.quot;+ sig.getName() + quot;]quot;); System.out.println(quot;###########################################################################quot;); } after() : traceMethods() { Signature sig = thisJoinPointStaticPart.getSignature(); System.out.println(quot;###########################################################################quot;); System.out.println(quot;Exiting [quot;+ sig.getDeclaringType().getName() + quot;.quot;+ sig.getName() + quot;]quot;); System.out.println(quot;###########################################################################quot;); }
}
Can some one please help me out ? Do i have to make any entries in the xml file to make this possible ??
FYI : I am supposed to use only j2sdk1.4.2_10 .
I looked through some of the examples in the internet, and most of them have used Annotations which requires jre1.5 and above.
Can you please let me know if it is still possible to achieve aspectJ logging using Spring2.0 and j2sdk1.4.2_10 ?? |
|