代码之家  ›  专栏  ›  技术社区  ›  PeterMmm

启动嵌入式Jetty服务器的最短代码

  •  11
  • PeterMmm  · 技术社区  · 17 年前

    我正在编写一些启动嵌入式Jetty服务器的示例代码。服务器必须只加载一个servlet,将所有请求发送到servlet并在localhost:80上侦听。

    我的代码到目前为止:

    static void startJetty() {
            try {
                Server server = new Server();
    
                Connector con = new SelectChannelConnector();
                con.setPort(80);
                server.addConnector(con);
    
                Context context = new Context(server, "/", Context.SESSIONS);
                ServletHolder holder = new ServletHolder(new MyApp());
                context.addServlet(holder, "/*");
    
                server.start();
            } catch (Exception ex) {
                System.err.println(ex);
            }
    
        }
    

    我能用更少的代码/行来做同样的事情吗?(使用码头6.1.0)。

    5 回复  |  直到 11 年前
        1
  •  13
  •   javanna Jayendra    14 年前
    static void startJetty() {
        try {
            Server server = new Server();
            Connector con = new SelectChannelConnector();
            con.setPort(80);
            server.addConnector(con);
            Context context = new Context(server, "/", Context.SESSIONS);
            context.addServlet(new ServletHolder(new MyApp()), "/*");
            server.start();
        } catch (Exception ex) {
            System.err.println(ex);
        }
    }
    

    删除了不必要的空白,并将servletholder创建移到了内联。删除了5行。

        2
  •  5
  •   Jonathan Holloway    17 年前

    您可以在spring applicationcontext.xml中声明性地配置jetty,例如:

    http://roopindersingh.com/2008/12/10/spring-and-jetty-integration/

    然后只需从applicationcontext.xml中检索服务器bean并调用start…我相信这就是一行代码…:)

    ((Server)appContext.getBean("jettyServer")).start();
    

    它对涉及到Jetty的集成测试很有用。

        3
  •  2
  •   Renato    11 年前

    我写了一个图书馆, EasyJetty 这使得嵌入防波堤更加容易。它只是比JettyAPI更薄的一层,非常轻。

    您的示例如下所示:

    import com.athaydes.easyjetty.EasyJetty;
    
    public class Sample {
    
        public static void main(String[] args) {
            new EasyJetty().port(80).servlet("/*", MyApp.class).start();
        }
    
    }
    
        4
  •  1
  •   Janus Troelsen    13 年前

    码头8工程:

    import org.eclipse.jetty.server.Server;
    import org.eclipse.jetty.webapp.WebAppContext;
    
    public class Main {
        public static void main(String[] args) throws Exception {
                Server server = new Server(8080);
                WebAppContext handler = new WebAppContext();
                handler.setResourceBase("/");
                handler.setContextPath("/");
                handler.addServlet(new ServletHolder(new MyApp()), "/*");
                server.setHandler(handler);
                server.start();
        }
    }
    
        5
  •  1
  •   sendon1982    12 年前
            Server server = new Server(8080);
            Context root = new Context(server, "/");
            root.setResourceBase("./pom.xml");
            root.setHandler(new ResourceHandler());
            server.start();
    
    推荐文章