Adding different handler in single Jetty server

10,715

Solution 1

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();

Solution 2

http://git.eclipse.org/c/jetty/org.eclipse.jetty.project.git/tree/examples/embedded/src/main/java/org/eclipse/jetty/embedded/ManyHandlers.java

This is an example of using many handlers at once on the same server.

Eventually it will be added to the documentation here:

http://www.eclipse.org/jetty/documentation/current/embedded-examples.html

Until that time there are many other examples there that should help make things clearer as well.

Share:
10,715
Prasath
Author by

Prasath

Updated on June 04, 2022

Comments

  • Prasath
    Prasath about 2 years

    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?

  • sritmak
    sritmak over 10 years
    Hey. I followed your advices, I can go to my servlet, but when my WebSocket is opened, I receive the Error "Received unexpected compressed frame", and closes. How can I change ports of my handlers in order they work on a different channel and don't disturb each other?
  • pixelstuermer
    pixelstuermer over 6 years
    Nice! Thanks a lot!