View Javadoc

1   // ========================================================================
2   // Copyright (c) 2006-2009 Mort Bay Consulting Pty. Ltd.
3   // ------------------------------------------------------------------------
4   // All rights reserved. This program and the accompanying materials
5   // are made available under the terms of the Eclipse Public License v1.0
6   // and Apache License v2.0 which accompanies this distribution.
7   // The Eclipse Public License is available at 
8   // http://www.eclipse.org/legal/epl-v10.html
9   // The Apache License v2.0 is available at
10  // http://www.opensource.org/licenses/apache2.0.php
11  // You may elect to redistribute this code under either of these licenses. 
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   * A Jetty server can have multiple connectors.
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  }