WebSocketHandler와 WebAppContext를 함께 실행할 수 있습니까? 최신 버전 9.2.1.v20140609
을 사용하고 있습니다. 아래의 구성을 시도했지만 웹 소켓 호출시 localhost:8080/
WebAppContext 호출로 인터셉트합니다.동일한 인스턴스에서 WebSocketHandler를 사용하여 WebAppContext를 실행할 수 있습니까?
public static void main(String[] args) throws Exception
{
ServerConnector connector = new ServerConnector(server);
connector.setPort(8080);
server.addConnector(connector);
WebAppContext context = new WebAppContext("webapp", "/");
// Setting up browser caching. Binds params for org.eclipse.jetty.servlet.DefaultServlet.init()
context.getInitParams().put("org.eclipse.jetty.servlet.Default.etags", "true");
context.getInitParams().put("org.eclipse.jetty.servlet.Default.cacheControl", "public, max-age=0");
// Fix for Windows, so Jetty doesn't lock files
if (System.getProperty("os.name").toLowerCase().contains("windows")) {
context.getInitParams().put("org.eclipse.jetty.servlet.Default.useFileMappedBuffer", "false");
}
// Will throw an exception when will be unable to start server for some reason
context.setThrowUnavailableOnStartupException(true);
Broker broker = new Broker();
// Implementation of org.eclipse.jetty.websocket.server.WebSocketHandler
WebSocketHandler socketHandler = new com.namespace.websocket.Handler(broker);
HandlerCollection handlerCollection = new HandlerCollection();
handlerCollection.setHandlers(new Handler[] {context, socketHandler});
server.setHandler(handlerCollection);
// Remove Server:Jetty(9...) from Response Headers
removeServerVersionFromHeaders(server);
server.start();
}
내가 실행 여러 부두 인스턴스에서 실행하고 일부 5555
포트에 바로 와이어 웹 소켓 핸들러, 바람직하게 내가 한 부두 인스턴스를 유지하고 싶은, 그리고 어쩌면 웹 소켓 연결을 관리 할 수 /ws
핸들러를 사용할 수 있습니다 : 여기 내 실행기입니다 같은 것에 대해 어떻게
, 당신은 ContextHandler.setAllowNullPaths (true)를 사용할 수 있습니다 존재하는 매핑하기로 결정했다. http://download.eclipse.org/jetty/stable-9/apidocs/org/eclipse/jetty/server/handler/ContextHandler.html#setAllowNullPathInfo(boolean) – Andrew