Добавление другого обработчика на одном сервере Jetty

Мне нужен джет-сервер с несколькими сервлетами.

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

Мне нужно, чтобы оба были на одном сервере. Есть ли возможности?

Ответ 1

Вы можете использовать org.eclipse.jetty.server.handler.HandlerCollection(Jetty 9)

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

Позже добавьте обработчики в коллекцию:

handlerCollection.addHandler(newHandler);

Наконец,

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

Ответ 2

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

Это пример использования нескольких обработчиков сразу на одном сервере.

В конце концов он будет добавлен в документацию здесь:

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

До этого времени есть много других примеров, которые также должны помочь сделать вещи более ясными.