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]

Reply via email to