1 package org.codehaus.xfire.transport.http;
2
3 import java.io.IOException;
4
5 import javax.servlet.ServletException;
6 import javax.servlet.http.HttpServlet;
7 import javax.servlet.http.HttpServletRequest;
8 import javax.servlet.http.HttpServletResponse;
9
10 import org.codehaus.xfire.XFire;
11 import org.codehaus.xfire.XFireFactory;
12
13 /***
14 * A servlet which processes incoming XFire requests.
15 * It delegates to the XFireController to process the request.
16 *
17 * @author <a href="mailto:dan@envoisolutions.com">Dan Diephouse </a>
18 * @since Feb 13, 2004
19 */
20 public class XFireServlet
21 extends HttpServlet
22 {
23 private XFire xfire;
24
25 private XFireServletController controller;
26
27 public void init()
28 throws ServletException
29 {
30 super.init();
31 xfire = createXFire();
32 controller = createController();
33 }
34
35 public XFire createXFire()
36 throws ServletException
37 {
38 try
39 {
40 XFireFactory factory = XFireFactory.newInstance();
41 return factory.getXFire();
42 }
43 catch (Exception e)
44 {
45 throw new ServletException("Couldn't start XFire.", e);
46 }
47 }
48
49 public XFireServletController createController()
50 throws ServletException
51 {
52 return new XFireServletController(xfire, getServletContext());
53 }
54
55 /***
56 * @see javax.servlet.http.HttpServlet#doGet(javax.servlet.http.HttpServletRequest,
57 * javax.servlet.http.HttpServletResponse)
58 */
59 protected void doGet(HttpServletRequest request,
60 HttpServletResponse response)
61 throws ServletException, IOException
62 {
63 controller.doService(request, response);
64 }
65
66 /***
67 * @see javax.servlet.http.HttpServlet#doPost(javax.servlet.http.HttpServletRequest,
68 * javax.servlet.http.HttpServletResponse)
69 */
70 protected void doPost(HttpServletRequest req, HttpServletResponse res)
71 throws ServletException, IOException
72 {
73 doGet(req, res);
74 }
75 }