@Override public void start() throws Exception { Router router = Router.router(vertx); router.route().handler(routingContext -> { routingContext.response().putHeader("content-type", "text/html").end("Hello World!"); }); vertx.createHttpServer().requestHandler(router).listen(8080); } }
private void now(RoutingContext context) { logger.info("Time request from {}", context.request().remoteAddress()); JsonObject data = new JsonObject() .put("powered-by", "vertx") .put("current-time", System.currentTimeMillis()); context.response() .putHeader("Content-Type", "application/json") .end(data.encode()); } }
@Override public void start(Future<Void> startFuture) throws Exception { HttpServer server = vertx.createHttpServer(new HttpServerOptions().setPort(8080)); server.requestHandler(req -> req.response().end()); server.listen(res -> { if (res.succeeded()) { startFuture.complete(); } else { startFuture.fail(res.cause()); } }); } }
@Test public void testKeepAliveTimeoutHeader() throws Exception { AtomicBoolean sent = new AtomicBoolean(); server.requestHandler(req -> { if (sent.compareAndSet(false, true)) { req.response().putHeader("keep-alive", "timeout=3").end(); } }); testKeepAliveTimeout(new HttpClientOptions().setMaxPoolSize(1).setKeepAliveTimeout(30), 1); }
routingContext.response().setStatusMessage("OK").end(); }); if (failure instanceof ValidationException) routingContext.response() .setStatusCode(400) .setStatusMessage("ValidationException thrown! " + ((ValidationException) failure).type().name()) .end(); }); server.requestHandler(router).listen((ar) -> { if (ar.succeeded()) { logger.info("Server started on port " + ar.result().actualPort());
@Test public void testPathParamsAreFulfilled() throws Exception { router.route("/blah/:abc/quux/:def/eep/:ghi").handler(rc -> { Map<String, String> params = rc.pathParams(); rc.response().setStatusMessage(params.get("abc") + params.get("def") + params.get("ghi")).end(); }); testPattern("/blah/tim/quux/julien/eep/nick", "timjuliennick"); }
@Test public void testKeepAliveTimeoutHeaderReusePrevious() throws Exception { AtomicBoolean sent = new AtomicBoolean(); server.requestHandler(req -> { HttpServerResponse resp = req.response(); if (sent.compareAndSet(false, true)) { resp.putHeader("keep-alive", "timeout=3"); } resp.end(); }); testKeepAliveTimeout(new HttpClientOptions().setMaxPoolSize(1).setKeepAliveTimeout(30), 2); }
@Override public void start() { Router router = Router.router(vertx); router.get("/").handler(rc -> rc.response().end(UUID.randomUUID().toString())); vertx.createHttpServer() .requestHandler(router) .listen(8080); } }
private TestLoggerFactory testLogging() throws Exception { return TestUtils.testLogging(() -> { try { server.requestHandler(req -> { req.response().end(); }); startServer(); client.getNow(DEFAULT_HTTP_PORT, DEFAULT_HTTP_HOST, "/somepath", resp -> { testComplete(); }); await(); } catch (Exception e) { throw new RuntimeException(e); } }); }
@Test public void testFailureinHandlingFailureWithInvalidStatusMessage() throws Exception { String path = "/blah"; router.route(path).handler(rc -> { throw new RuntimeException("ouch!"); }).failureHandler(frc -> frc.response().setStatusMessage("Hello\nWorld").end()); testRequest(HttpMethod.GET, path, 500, "Internal Server Error"); }
@Test public void testKeepAliveTimeout() throws Exception { server.requestHandler(req -> { req.response().end(); }); testKeepAliveTimeout(new HttpClientOptions().setMaxPoolSize(1).setKeepAliveTimeout(3), 1); }
public static void main(String[] args) { Vertx vertx = Vertx.vertx(); Router router = Router.router(vertx); router.get("/").handler(rc -> rc.response().end("Hello")); router.get("/:name").handler(rc -> rc.response().end("Hello " + rc.pathParam("name"))); vertx.createHttpServer() .requestHandler(router) .listen(8080); } }
private void invoke(RoutingContext rc) { client.get("/luke").as(BodyCodec.string()).send(ar -> { if (ar.failed()) { rc.response().end("Unable to call the greeting service: " + ar.cause().getMessage()); } else { if (ar.result().statusCode() != 200) { rc.response().end("Unable to call the greeting service - received status:" + ar.result().statusMessage()); } else { rc.response().end("Greeting service invoked: '" + ar.result().body() + "'"); } } }); } }
private void testURIAndPath(String uri, String path) { server.requestHandler(req -> { assertEquals(uri, req.uri()); assertEquals(path, req.path()); req.response().end(); }); server.listen(onSuccess(server -> { client.request(HttpMethod.GET, DEFAULT_HTTP_PORT, DEFAULT_HTTP_HOST, uri, resp -> testComplete()).end(); })); await(); }
@Test public void testUseResponseAfterComplete() throws Exception { server.requestHandler(req -> { HttpServerResponse resp = req.response(); assertFalse(resp.ended()); resp.end(); assertTrue(resp.ended()); checkHttpServerResponse(resp); testComplete(); }); startServer(); client.getNow(DEFAULT_HTTP_PORT, DEFAULT_HTTP_HOST, DEFAULT_TEST_URI, noOpHandler()); await(); }
public static void main(String[] args) { // Create the Vert.x instance Vertx vertx = Vertx.vertx(); // Create a router Router router = Router.router(vertx); router.get("/").handler(rc -> rc.response().end("Hello")); router.get("/:name").handler(rc -> rc.response().end("Hello " + rc.pathParam("name"))); // Start the HTTP server. vertx.createHttpServer() .requestHandler(router) .listen(8080); } }