http://www.junlu.com/
Home
»
Home (12/2007)
»
Struts 2
»
Struts 2 and Spring AOP using ProxyFactoryBean
Shih Lee
2007-02-04
Replies:
Struts 2 and Spring AOP using ProxyFactoryBean --
Shih Lee
2007-02-04
Struts 2 and Spring AOP using ProxyFactoryBean
--
Tom Schneider
2007-02-04
Struts 2 and Spring AOP using ProxyFactoryBean
--
Dave Newton
2007-02-04
Struts 2 and Spring AOP using ProxyFactoryBean
--
Shih Lee
2007-02-05
Hello,
I have downloaded struts-blank to play around. I was trying to use Spring
AOP with Struts 2. However, I am getting the following error:
2007-02-04 21:27:17,233 DEBUG AbstractBeanFactory - Bean with name
'helloWorld' is a factory bean
java.lang.IllegalArgumentException
: object is not an instance of declaring
class
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.springframework.aop.support.AopUtils
.invokeJoinpointUsingReflection (
AopUtils.java
:287)
at
org.springframework.aop.framework.ReflectiveMethodInvocation
.invokeJoinpoint (
ReflectiveMethodInvocation.java
:181)
at
org.springframework.aop.framework.ReflectiveMethodInvocation
.proceed (
ReflectiveMethodInvocation.java
:148)
at advice.TimeLoggingInterceptor.invoke(TimeLoggingInterceptor.java:31)
at
org.springframework.aop.framework.ReflectiveMethodInvocation
.proceed (
ReflectiveMethodInvocation.java
:170)
at
org.springframework.aop.framework.JdkDynamicAopProxy
.invoke (
JdkDynamicAopProxy.java
:176)
at
com.opensymphony.xwork2.DefaultActionInvocation
.invokeAction (
DefaultActionInvocation.java
:354)
at
com.opensymphony.xwork2.DefaultActionInvocation
.invokeActionOnly (
DefaultActionInvocation.java
:228)
at
com.opensymphony.xwork2.DefaultActionInvocation
.invoke (
DefaultActionInvocation.java
:202)
at
com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor
.doIntercept (
DefaultWorkflowInterceptor.java
:177)
at
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor
.intercept (
MethodFilterInterceptor.java
:86)
at
com.opensymphony.xwork2.DefaultActionInvocation
.invoke (
DefaultActionInvocation.java
:200)
at
com.opensymphony.xwork2.validator.ValidationInterceptor
.doIntercept (
ValidationInterceptor.java
:115)
at
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor
.intercept (
MethodFilterInterceptor.java
:86)
at
com.opensymphony.xwork2.DefaultActionInvocation
.invoke (
DefaultActionInvocation.java
:200)
at
com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor
.intercept (
ConversionErrorInterceptor.java
:123)
at
com.opensymphony.xwork2.DefaultActionInvocation
.invoke (
DefaultActionInvocation.java
:200)
at
com.opensymphony.xwork2.interceptor.ParametersInterceptor
.intercept (
ParametersInterceptor.java
:147)
at
com.opensymphony.xwork2.DefaultActionInvocation
.invoke (
DefaultActionInvocation.java
:200)
at
com.opensymphony.xwork2.interceptor.StaticParametersInterceptor
.intercept (
StaticParametersInterceptor.java
:105)
at
com.opensymphony.xwork2.DefaultActionInvocation
.invoke (
DefaultActionInvocation.java
:200)
at
org.apache.struts2.interceptor.CheckboxInterceptor
.intercept (
CheckboxInterceptor.java
:80)
at
com.opensymphony.xwork2.DefaultActionInvocation
.invoke (
DefaultActionInvocation.java
:200)
at
org.apache.struts2.interceptor.FileUploadInterceptor
.intercept (
FileUploadInterceptor.java
:204)
at
com.opensymphony.xwork2.DefaultActionInvocation
.invoke (
DefaultActionInvocation.java
:200)
at
com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor
.intercept (
ModelDrivenInterceptor.java
:74)
at
com.opensymphony.xwork2.DefaultActionInvocation
.invoke (
DefaultActionInvocation.java
:200)
at
com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor
.intercept (
ScopedModelDrivenInterceptor.java
:120)
at
com.opensymphony.xwork2.DefaultActionInvocation
.invoke (
DefaultActionInvocation.java
:200)
at
org.apache.struts2.interceptor.ProfilingActivationInterceptor
.intercept (
ProfilingActivationInterceptor.java
:59)
at
com.opensymphony.xwork2.DefaultActionInvocation
.invoke (
DefaultActionInvocation.java
:200)
at
org.apache.struts2.interceptor.debugging.DebuggingInterceptor
.intercept (
DebuggingInterceptor.java
:174)
at
com.opensymphony.xwork2.DefaultActionInvocation
.invoke (
DefaultActionInvocation.java
:200)
at
com.opensymphony.xwork2.interceptor.ChainingInterceptor
.intercept (
ChainingInterceptor.java
:115)
at
com.opensymphony.xwork2.DefaultActionInvocation
.invoke (
DefaultActionInvocation.java
:200)
at
com.opensymphony.xwork2.interceptor.I18nInterceptor
.intercept (
I18nInterceptor.java
:143)
at
com.opensymphony.xwork2.DefaultActionInvocation
.invoke (
DefaultActionInvocation.java
:200)
at
com.opensymphony.xwork2.interceptor.PrepareInterceptor
.intercept (
PrepareInterceptor.java
:115)
at
com.opensymphony.xwork2.DefaultActionInvocation
.invoke (
DefaultActionInvocation.java
:200)
at
org.apache.struts2.interceptor.ServletConfigInterceptor
.intercept (
ServletConfigInterceptor.java
:156)
at
com.opensymphony.xwork2.DefaultActionInvocation
.invoke (
DefaultActionInvocation.java
:200)
at
com.opensymphony.xwork2.interceptor.AliasInterceptor
.intercept (
AliasInterceptor.java
:124)
at
com.opensymphony.xwork2.DefaultActionInvocation
.invoke (
DefaultActionInvocation.java
:200)
at
com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor
.intercept (
ExceptionMappingInterceptor.java
:180)
at
com.opensymphony.xwork2.DefaultActionInvocation
.invoke (
DefaultActionInvocation.java
:200)
at
org.apache.struts2.impl.StrutsActionProxy
$1.call(StrutsActionProxy.java:27)
at
org.apache.struts2.impl.StrutsActionProxy
$1.call(StrutsActionProxy.java:26)
at
org.apache.struts2.impl.RequestContextImpl.callInContext(RequestContextImpl.java:152)
at
org.apache.struts2.impl.StrutsActionProxy
.execute (
StrutsActionProxy.java
:25)
at
org.apache.struts2.dispatcher.Dispatcher
.serviceAction (
Dispatcher.java
:330)
at
org.apache.struts2.dispatcher.FilterDispatcher
.doFilter (
FilterDispatcher.java
:256)
at
org.apache.catalina.core.ApplicationFilterChain
.internalDoFilter (
ApplicationFilterChain.java
:186)
at
org.apache.catalina.core.ApplicationFilterChain
.doFilter (
ApplicationFilterChain.java
:157)
at
org.apache.catalina.core.StandardWrapperValve
.invoke (
StandardWrapperValve.java
:214)
at
org.apache.catalina.core.StandardValveContext
.invokeNext (
StandardValveContext.java
:104)
at
org.apache.catalina.core.StandardPipeline
.invoke (
StandardPipeline.java
:520)
at
org.apache.catalina.core.StandardContextValve
.invokeInternal (
StandardContextValve.java
:198)
at
org.apache.catalina.core.StandardContextValve
.invoke (
StandardContextValve.java
:152)
at
org.apache.catalina.core.StandardValveContext
.invokeNext (
StandardValveContext.java
:104)
at
org.apache.catalina.core.StandardPipeline
.invoke (
StandardPipeline.java
:520)
at
org.apache.catalina.core.StandardHostValve
.invoke (
StandardHostValve.java
:137)
at
org.apache.catalina.core.StandardValveContext
.invokeNext (
StandardValveContext.java
:104)
at
org.apache.catalina.valves.ErrorReportValve
.invoke (
ErrorReportValve.java
:118)
at
org.apache.catalina.core.StandardValveContext
.invokeNext (
StandardValveContext.java
:102)
at
org.apache.catalina.core.StandardPipeline
.invoke (
StandardPipeline.java
:520)
at
org.apache.catalina.core.StandardEngineValve
.invoke (
StandardEngineValve.java
:109)
at
org.apache.catalina.core.StandardValveContext
.invokeNext (
StandardValveContext.java
:104)
at
org.apache.catalina.core.StandardPipeline
.invoke (
StandardPipeline.java
:520)
at
org.apache.catalina.core.ContainerBase
.invoke (
ContainerBase.java
:929)
at
org.apache.coyote.tomcat5.CoyoteAdapter
.service (
CoyoteAdapter.java
:160)
at
org.apache.coyote.http11.Http11Processor
.process (
Http11Processor.java
:799)
at
org.apache.coyote.http11.Http11Protocol
$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at
org.apache.tomcat.util.threads.ThreadPool
$ControlRunnable.run(ThreadPool.java:683)
at
java.lang.Thread
.run (
Thread.java
:595)
Here is my example.xml:
<struts>
<package name="example" namespace="/example" extends="struts-default">
<action name="helloWorld" class="helloWorld">
<result>/example/HelloWorld.jsp</result>
</action>
</struts>
Here is my applicationContext.xml:
<beans default-autowire="autodetect">
<!-- =============================== Interceptors
================================= -->
<bean id="timeLoggingAdvice" class="advice.TimeLoggingInterceptor"/>
<!-- =============================== Advisor
====================================== -->
<bean id="timeLoggingAdvisor"
class="
org.springframework.aop.support.NameMatchMethodPointcutAdvisor
">
<property name="mappedNames">
<list>
<value>execute</value>
</list>
</property>
<property name="advice">
<ref bean="timeLoggingAdvice"/>
</property>
</bean>
<!-- ============================== Spring Beans
================================= -->
<bean id="helloWorld"
class="
org.springframework.aop.framework.ProxyFactoryBean
">
<property name="proxyInterfaces">
<value>example.IHelloWorld</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"/>
<!--<bean id="helloWorld" class="example.HelloWorld"
singleton="false"/>-->
</beans>
Any help is greatly appreciated!
Thanks,
Lee
--
Sent from the Struts - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@(protected)
For additional commands, e-mail: user-help@(protected)
©2008 junlu.com - Jax Systems, LLC, U.S.A.