1 package org.codehaus.xfire.spring.remoting; 2 3 import java.net.MalformedURLException; 4 5 import org.springframework.aop.framework.ProxyFactory; 6 import org.springframework.beans.factory.FactoryBean; 7 8 /*** 9 * Factory bean for XFire proxies. Behaves like the proxied service when used as bean reference, exposing the specified 10 * service interface. 11 * <p/> 12 * The service URL must be an HTTP URL exposing a SOAP service. For details, see <code>XFireClientInterceptor</code> 13 * docs. 14 * 15 * @author <a href="mailto:poutsma@mac.com">Arjen Poutsma</a> 16 * @see #setServiceInterface 17 * @see #setServiceUrl 18 */ 19 public class XFireProxyFactoryBean 20 extends XFireClientInterceptor 21 implements FactoryBean 22 { 23 private Object serviceProxy; 24 25 public void afterPropertiesSet() 26 throws MalformedURLException 27 { 28 super.afterPropertiesSet(); 29 30 this.serviceProxy = ProxyFactory.getProxy(getService().getServiceInterface(), this); 31 } 32 33 public Object getObject() 34 { 35 return this.serviceProxy; 36 } 37 38 public Class getObjectType() 39 { 40 return (this.serviceProxy != null) ? this.serviceProxy.getClass() : getService().getServiceInterface(); 41 } 42 43 public boolean isSingleton() 44 { 45 return true; 46 } 47 48 }