1 package org.codehaus.xfire.server.http;
2
3 import org.codehaus.xfire.server.XFireServer;
4 import org.codehaus.xfire.transport.http.XFireServlet;
5 import org.mortbay.http.HttpContext;
6 import org.mortbay.jetty.Server;
7 import org.mortbay.jetty.servlet.ServletHandler;
8 import org.mortbay.util.InetAddrPort;
9
10 /***
11 * HTTP Server for XFire services.
12 *
13 * @version $Id$
14 */
15 public class XFireHttpServer
16 implements XFireServer
17 {
18
19 private Server httpServer;
20
21
22 private int port = 8081;
23
24 public void start()
25 throws Exception
26 {
27 if (isStarted()) {
28 return;
29 }
30
31 httpServer = new Server();
32 httpServer.addListener(new InetAddrPort(port));
33
34 HttpContext context = httpServer.getContext("/");
35 context.setRequestLog(null);
36
37 ServletHandler handler = new ServletHandler();
38 handler.addServlet("XFireServlet", "/*", XFireServlet.class.getName());
39
40 context.addHandler(handler);
41
42 httpServer.start();
43 }
44
45 public void stop()
46 throws Exception
47 {
48 if (isStarted())
49 {
50 httpServer.stop();
51 httpServer = null;
52 }
53 }
54
55 public boolean isStarted()
56 {
57 return (httpServer != null) && httpServer.isStarted();
58 }
59
60 public int getPort()
61 {
62 return port;
63 }
64
65 public void setPort(int value)
66 {
67 port = value;
68 }
69
70 }