在单个Jetty服务器中添加不同的处理程序

时间:2013-06-17 13:33:06

标签: websocket jetty

我需要一个带有多个servletHandler的jetty服务器。

的HttpServlet:

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

WebsocketServlet:

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

我需要两者都应该在单一服务器中。 有可能吗?

2 个答案:

答案 0 :(得分:24)

你可以使用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();

答案 1 :(得分:3)

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

在此之前还有很多其他的例子可以帮助我们更清楚。