Looking at the javadoc for the ProxyFactoryBean stuff, I think this is wrong:
> <bean id="globalWeatherSoap" > class="org.springframework.aop.framework.ProxyFactoryBean"> > <property name="targetSource" ref="globalWeatherSoapTarget" /> > <property name="interceptorNames" value="globalWeatherSoapThrottler" /> > </bean> http://static.springsource.org/spring/docs/2.5.x/api/org/springframework/aop/framework/AdvisedSupport.html I thing the "targetSource" should just be "target" and you MAY need to add an "interfaces" property in there which would be a list of the interfaces to proxy (net.webservicex.GlobalWeatherSoap, etc..) or maybe use the targetClass property. Dan On Aug 16, 2013, at 4:49 AM, marceloverdijk <[email protected]> wrote: > We have a Apache CXF client generated using the wsdl2code codegen plugin. > > We are also using Spring to create a bean for our client using: > > <jaxws:client id="globalWeatherSoapTarget" > serviceClass="net.webservicex.GlobalWeatherSoap" > address="http://www.webservicex.net/globalweather.asmx" /> > > Now we want to add some requirements: > 1) connection/read timeout > 2) throttling (limiting the number of concurrent requests our client will > make to soap server) > > For the first part we can add a http conduit like: > > <http-conf:conduit name="*.http-conduit"> > <http-conf:client ConnectionTimeout="5000" ReceiveTimeout="5000" /> > </http-conf:conduit> > > Note that is matching all clients using the * wildcard; but this is just to > make example clearer. > > For the throttling part we were thinking of using a Spring > ConcurrencyThrottleInterceptor by using something like: > > <jaxws:client id="globalWeatherSoapTarget" > serviceClass="net.webservicex.GlobalWeatherSoap" > address="http://www.webservicex.net/globalweather.asmx" /> > > <bean id="globalWeatherSoapThrottler" > class="org.springframework.aop.interceptor.ConcurrencyThrottleInterceptor"> > <property name="concurrencyLimit" value="2" /> > </bean> > > <bean id="globalWeatherSoap" > class="org.springframework.aop.framework.ProxyFactoryBean"> > <property name="targetSource" ref="globalWeatherSoapTarget" /> > <property name="interceptorNames" value="globalWeatherSoapThrottler" /> > </bean> > > but this is giving the following error: > > org.springframework.beans.factory.BeanCreationException: Error creating bean > with name 'globalWeatherSoap' defined in class path resource > [applicationContext.xml]: Initialization of bean failed; nested exception is > org.springframework.beans.ConversionNotSupportedException: Failed to convert > property value of type 'com.sun.proxy.$Proxy94 implementing > net.webservicex.GlobalWeatherSoap,javax.xml.ws.BindingProvider,java.io.Closeable' > to required type 'org.springframework.aop.TargetSource' for property > 'targetSource'; nested exception is java.lang.IllegalStateException: Cannot > convert value of type [com.sun.proxy.$Proxy94 implementing > net.webservicex.GlobalWeatherSoap,javax.xml.ws.BindingProvider,java.io.Closeable] > to required type [org.springframework.aop.TargetSource] for property > 'targetSource': no matching editors or conversion strategy found > > I'm wondering if there is another / better way to implement throttling? > > Regards, > Marcel > > > > -- > View this message in context: > http://cxf.547215.n5.nabble.com/CXF-client-throttling-tp5732551.html > Sent from the cxf-user mailing list archive at Nabble.com. -- Daniel Kulp [email protected] - http://dankulp.com/blog Talend Community Coder - http://coders.talend.com
