1
2
3
4
5
6
7
8
9
10
11
12
13
14 package org.eclipse.jetty.embedded;
15
16 import java.io.IOException;
17
18 import javax.servlet.ServletException;
19 import javax.servlet.http.HttpServletRequest;
20 import javax.servlet.http.HttpServletResponse;
21
22 import org.eclipse.jetty.server.Connector;
23 import org.eclipse.jetty.server.Request;
24 import org.eclipse.jetty.server.Server;
25 import org.eclipse.jetty.server.bio.SocketConnector;
26 import org.eclipse.jetty.server.handler.AbstractHandler;
27 import org.eclipse.jetty.server.nio.SelectChannelConnector;
28 import org.eclipse.jetty.util.thread.QueuedThreadPool;
29
30
31
32
33
34
35
36 public class ManyConnectors
37 {
38 public static void main(String[] args)
39 throws Exception
40 {
41 Server server = new Server();
42
43 SelectChannelConnector connector0 = new SelectChannelConnector();
44 connector0.setPort(8080);
45 connector0.setMaxIdleTime(5000);
46 connector0.setName("connector 0");
47
48
49 SelectChannelConnector connector1 = new SelectChannelConnector();
50 connector1.setHost("127.0.0.1");
51 connector1.setPort(8888);
52 connector1.setName("connector 1");
53
54 SocketConnector connector2 = new SocketConnector();
55 connector2.setHost("127.0.0.2");
56 connector2.setPort(8888);
57 connector2.setThreadPool(new QueuedThreadPool());
58 connector2.setName("connector 2");
59
60 server.setConnectors(new Connector[]{connector0,connector1,connector2});
61
62 server.setHandler(new HelloHandler());
63
64 server.start();
65 server.join();
66 }
67
68 public static class HelloHandler extends AbstractHandler
69 {
70 public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
71 {
72 response.setContentType("text/html");
73 response.setStatus(HttpServletResponse.SC_OK);
74 response.getWriter().println("<h1>Hello OneHandler</h1>");
75 response.getWriter().println("from "+((Request)request).getConnection().getConnector().getName());
76
77 ((Request)request).setHandled(true);
78 }
79 }
80 }