View Javadoc

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  }