1 package org.codehaus.xfire.spring.remoting; 2 3 import javax.servlet.http.HttpServletRequest; 4 import javax.servlet.http.HttpServletResponse; 5 import javax.xml.namespace.QName; 6 7 import org.codehaus.xfire.XFire; 8 import org.codehaus.xfire.transport.http.XFireServletController; 9 import org.springframework.web.servlet.ModelAndView; 10 import org.springframework.web.servlet.mvc.Controller; 11 12 /*** 13 * An adapter for the {@link XFireServletController} so that it conforms to Springs MVC {@link Controller} interface. 14 * 15 * @author <a href="mailto:dan@envoisolutions.com">Dan Diephouse</a> 16 * @author <a href="mailto:poutsma@mac.com">Arjen Poutsma</a> 17 */ 18 public class XFireServletControllerAdapter 19 extends XFireServletController 20 implements Controller 21 { 22 private QName serviceName; 23 24 /*** 25 * Initializes a new instance of the adapter with the given XFire instance and service name. 26 * 27 * @param xfire the XFire instance 28 * @param serviceName the name of the service 29 */ 30 public XFireServletControllerAdapter(XFire xfire, QName serviceName) 31 { 32 super(xfire); 33 this.serviceName = serviceName; 34 } 35 36 protected String getService(HttpServletRequest request) 37 { 38 return serviceName.getLocalPart(); 39 } 40 41 /*** 42 * Process the incoming SOAP request and create a SOAP response. 43 * 44 * @param request current HTTP request 45 * @param response current HTTP response 46 * @return <code>null</code> 47 * @throws Exception in case of errors 48 */ 49 public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) 50 throws Exception 51 { 52 doService(request, response); 53 return null; 54 } 55 }