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 }