Добавление другого обработчика на одном сервере 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
До этого времени есть много других примеров, которые также должны помочь сделать вещи более ясными.