Search code examples
javawebsocketjetty

Adding different handler in single Jetty server


I need a jetty server with multiple servletHandler.

HTTPservlet:

    ServletHandler servletHandler = new ServletHandler();
    server.setHandler(servletHandler);
    servletHandler.addServletWithMapping("com.realtime.webserver.MyServlet", "/MyServlet");

WebsocketServlet:

MyWebSocketHandler myWebSocketHandler = new MyWebSocketHandler ();
             myWebSocketHandler.setHandler(new DefaultHandler());
             server.setHandler(myWebSocketHandler);
             server.start();

I need both should be in single server. Is there any possibilities?


Solution

  • You can use org.eclipse.jetty.server.handler.HandlerCollection (Jetty 9)

    HandlerCollection handlerCollection = new HandlerCollection();
    handlerCollection.setHandlers(new Handler[] {servletHandler, myWebSocketHandler});
    

    Later add handlers to the collection:

    handlerCollection.addHandler(newHandler);
    

    Finally,

    server.setHandler(handlerCollection);
    server.start();