Does anyone have any ideas about why my Spring AOP example doesn't work with
CXF? I've tried quite a few different approaches, this one seems the
simplest, but none worked.
1. I defined a service interface
2. I defined a service implementation
3. I defined a class to provide before method advice
4. I declared the service in my cxf.xml
5. I declared the aspect pointcut
6. I ran tomcat and got this error: java.lang.IllegalStateException:
Post-processor tried to replace bean instance of type
[vue.tcsm.services.SystemParameterService] with (proxy) object of type
[$Proxy42] - not supported for aspect-configured classes!
1. Service interface is simple:
@WebService(serviceName = "SystemParameterService")
public interface ISystemParameterService {
@WebMethod()
SystemParameterListDTO
getSystemParameter(@WebParam()SystemParameterListDTO
requests);
}
2. Implementation is simple:
@WebService(endpointInterface = "vue.tcsm.services.ISystemParameterService")
public class SystemParameterService implements ISystemParameterService {
...
}
3. Defined aop Pojo:
public class ProxyExample {
public void beforeMethod() {
System.out.println("Before method call");
}
4. I declared the service in my cxf.xml
<jaxws:endpoint id="systemParameter"
implementor="#systemParameterService"
implementorClass="vue.tcsm.services.ISystemParameterService"
address="/SystemParameterService">
</jaxws:endpoint>
<bean id="systemParameterService"
class="vue.tcsm.services.SystemParameterService"/>
<bean id="profiler" class="vue.tcsm.interceptors.ProxyExample"/>
5. I declared the aspect pointcut
<aop:config>
<aop:aspect ref="profiler">
<aop:pointcut id="aopbeforeMethod"
expression="execution(*
vue.tcsm.services.ISystemParameterService.*(..))"/>
<aop:before pointcut-ref="aopbeforeMethod"
method="beforeMethod"/>
</aop:aspect>
</aop:config>
Any ideas on what could be wrong?
-----
--
Hamlet D'Arcy
--
View this message in context:
http://www.nabble.com/Can%27t-get-simple-Spring-AOP-example-to-work-in-CXF-tp25615235p25615235.html
Sent from the cxf-user mailing list archive at Nabble.com.