Hi again,
Thanks, Tom!
Good suggestion. I have tried it but getting the following exception after
adding CGLIB to the classpath:
2007-02-05 11:35:36,476 ERROR ContextLoader - Context initialization
failed
org.springframework.beans.factory.BeanCreationException: Error creating bean
with name 'helloWorld' defined in ServletContext resource
[/WEB-INF/applicationContext.xml]: Initialization of bean failed; nested
exception is null
org.springframework.aop.framework.adapter.UnknownAdviceTypeException: Advice
object [null] is neither a supported subinterface of
[org.aopalliance.aop.Advice] nor an [org.springframework.aop.Advisor]
at
org.springframework.aop.framework.adapter.DefaultAdvisorAdapterRegistry.getInterceptors(DefaultAdvisorAdapterRegistry.java:81)
at
org.springframework.aop.framework.AdvisorChainFactoryUtils.calculateInterceptorsAndDynamicInterceptionAdvice(AdvisorChainFactoryUtils.java:77)
at
org.springframework.aop.framework.HashMapCachingAdvisorChainFactory.getInterceptorsAndDynamicInterceptionAdvice(HashMapCachingAdvisorChainFactory.java:47)
at
org.springframework.aop.framework.Cglib2AopProxy$ProxyCallbackFilter.accept(Cglib2AopProxy.java:764)
at net.sf.cglib.proxy.Enhancer.emitMethods(Enhancer.java:884)
at net.sf.cglib.proxy.Enhancer.generateClass(Enhancer.java:498)
at
net.sf.cglib.transform.TransformingClassGenerator.generateClass(TransformingClassGenerator.java:33)
at
net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25)
at
net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:216)
at net.sf.cglib.proxy.Enhancer.createHelper(Enhancer.java:377)
at net.sf.cglib.proxy.Enhancer.create(Enhancer.java:285)
at
org.springframework.aop.framework.Cglib2AopProxy.getProxy(Cglib2AopProxy.java:195)
at
org.springframework.aop.framework.Cglib2AopProxy.getProxy(Cglib2AopProxy.java:147)
at
org.springframework.aop.framework.ProxyFactoryBean.getProxy(ProxyFactoryBean.java:330)
at
org.springframework.aop.framework.ProxyFactoryBean.getSingletonInstance(ProxyFactoryBean.java:285)
at
org.springframework.aop.framework.ProxyFactoryBean.setBeanFactory(ProxyFactoryBean.java:239)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:391)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:233)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:145)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getType(AbstractBeanFactory.java:352)
at
org.springframework.beans.factory.support.DefaultListableBeanFactory.isBeanTypeMatch(DefaultListableBeanFactory.java:257)
at
org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:152)
at
org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType(DefaultListableBeanFactory.java:206)
at
org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType(DefaultListableBeanFactory.java:200)
at
org.springframework.beans.factory.BeanFactoryUtils.beansOfTypeIncludingAncestors(BeanFactoryUtils.java:205)
at
org.springframework.beans.factory.support.DefaultListableBeanFactory.findMatchingBeans(DefaultListableBeanFactory.java:366)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType(AbstractAutowireCapableBeanFactory.java:916)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:850)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:378)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:233)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:145)
at
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:283)
at
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:313)
at
org.springframework.web.context.support.AbstractRefreshableWebApplicationContext.refresh(AbstractRefreshableWebApplicationContext.java:139)
at
org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:252)
at
org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:190)
at
org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:49)
at
org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3827)
at
org.apache.catalina.core.StandardContext.start(StandardContext.java:4343)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1083)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:789)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1083)
at
org.apache.catalina.core.StandardEngine.start(StandardEngine.java:478)
at
org.apache.catalina.core.StandardService.start(StandardService.java:480)
at
org.apache.catalina.core.StandardServer.start(StandardServer.java:2313)
at org.apache.catalina.startup.Catalina.start(Catalina.java:556)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:287)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:425)
I haven't used "proxyTargetClass" much through CGLIB but just dynamic proxy
in the jdk (ProxyFactoryBean). I have attached the
TimeLoggingInterceptor.java class and applicationContxt.xml. The rest is the
same in struts-blank sample application.
Thanks,
Lee
http://www.nabble.com/file/6257/TimeLoggingInterceptor.java
TimeLoggingInterceptor.java
http://www.nabble.com/file/6258/applicationContext.xml
applicationContext.xml
Dave Newton-4 wrote:
>
> --- Shih Lee <[EMAIL PROTECTED]> wrote:
>> [Spring AOP/S2]
>
> Just out of curiosity, does it work if instead of
> proxying the interface you proxy the class instead,
> like so:
>
> <bean id="helloWorld"
>
> class="org.springframework.aop.framework.ProxyFactoryBean">
> <property name="proxyTargetClass">
> <value>true</value>
> </property>
> <property name="interceptorNames">
> <list>
> <value>timeLoggingAdvisor</value>
> </list>
> </property>
> <property name="target">
> <ref local="helloWorldTarget"/>
> </property>
> </bean>
>
> <bean id="helloWorldTarget"
> class="example.HelloWorld"/>
>
> I haven't tried AOPing an Action interface yet, but I
> can successfully wrap up if I'm doing the class proxy.
> YMMV, and I believe my test was not under Spring 2
> (have not upgraded that app yet).
>
> Dave
>
>
>
>
> ____________________________________________________________________________________
> Be a PS3 game guru.
> Get your game face on with the latest PS3 news and previews at Yahoo!
> Games.
> http://videogames.yahoo.com/platform?platform=120121
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
>
--
View this message in context:
http://www.nabble.com/Struts-2-and-Spring-AOP-using-ProxyFactoryBean-tf3172313.html#a8810737
Sent from the Struts - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]