@Before public void setUp() throws Exception { HttpConfiguration http_config = new HttpConfiguration(); http_config.setOutputBufferSize(4096); _connector = new ServerConnector(_server, new HttpConnectionFactory(http_config)); _server.setConnectors(new Connector[] {_connector}); ServletContextHandler context = new ServletContextHandler(); context.setContextPath("/ctx"); _server.setHandler(context); _servletHandler = context.getServletHandler(); ServletHolder holder = new ServletHolder(_servlet0); holder.setAsyncSupported(true); _servletHandler.addServletWithMapping(holder, "/path/*"); ServletHolder holder2 = new ServletHolder(_servlet2); holder.setAsyncSupported(true); _servletHandler.addServletWithMapping(holder2, "/path2/*"); _server.start(); _port = _connector.getLocalPort(); _owp.set(0); _oda.set(0); _read.set(0); }
@Test public void testFallThrough() throws Exception { HandlerList list = new HandlerList(); _server.setHandler(list); ServletContextHandler root = new ServletContextHandler(list, "/", ServletContextHandler.SESSIONS); ServletHandler servlet = root.getServletHandler(); servlet.setEnsureDefaultServlet(false); servlet.addServletWithMapping(HelloServlet.class, "/hello/*"); list.addHandler( new AbstractHandler() { @Override public void handle( String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { response.sendError(404, "Fell Through"); } }); _server.start(); String response = _connector.getResponses("GET /hello HTTP/1.0\r\n\r\n"); Assert.assertThat(response, Matchers.containsString("200 OK")); response = _connector.getResponses("GET /other HTTP/1.0\r\n\r\n"); Assert.assertThat(response, Matchers.containsString("404 Fell Through")); }
@Test public void testReplaceServletHandlerWithServlet() throws Exception { ServletContextHandler context = new ServletContextHandler(); context.addServlet(TestServlet.class, "/test"); context.setContextPath("/"); _server.setHandler(context); _server.start(); StringBuffer request = new StringBuffer(); request.append("GET /test HTTP/1.0\n"); request.append("Host: localhost\n"); request.append("\n"); String response = _connector.getResponses(request.toString()); assertResponseContains("Test", response); context.stop(); ServletHandler srvHnd = new ServletHandler(); srvHnd.addServletWithMapping(HelloServlet.class, "/hello"); context.setServletHandler(srvHnd); context.start(); request = new StringBuffer(); request.append("GET /hello HTTP/1.0\n"); request.append("Host: localhost\n"); request.append("\n"); response = _connector.getResponses(request.toString()); assertResponseContains("Hello World", response); }