protected void defaultServerSetup() { server(); server.get( "/echo", new Handler() { @Override public Object handle(HttpExchange h) throws Exception { LowLevelHttpExchange x = (LowLevelHttpExchange) h; return x.verb_().get() + ":" + x.path_().get() + ":" + x.subpath_().get() + ":" + x.query_().get(); } }); server.get( "/hello", new Handler() { @Override public Object handle(HttpExchange x) { return "Hello"; } }); server.post( "/upload", new Handler() { @SuppressWarnings("unchecked") @Override public Object handle(HttpExchange x) { return U.join( ":", x.cookies().get("foo"), x.cookies().get("COOKIE1"), x.posted().get("a"), x.files().size(), Crypto.md5(x.files().get("f1")), Crypto.md5(x.files().get("f2")), Crypto.md5(U.or(x.files().get("f3"), new byte[0]))); } }); server.serve( new Handler() { @Override public Object handle(HttpExchange x) { return U.join(":", x.verb(), x.path(), x.subpath(), x.query()); } }); start(); }
public HTTPResponse() { statusCode = 0; setVersion("1.1"); setContentType("text/html; charset=\"utf-8\""); setServer(HTTPServer.getName()); setContent(""); }
@Override public void stop() { LOG.info("stopping http server"); if (usesComponent(NATTraversal.class)) { getComponent(NATTraversal.class).unmap(); } httpServer.stop(t); }
@Override public void start() { try { int port = url.getPort(); if (usesComponent(NATTraversal.class)) { getComponent(NATTraversal.class).setPort(port); getComponent(NATTraversal.class).map(); } httpServer.setPort(port); httpServer.setHandler(handler); t = new Thread(httpServer, "HTTPServer"); t.start(); } catch (Exception e) { LOG.error(e); } }
public void run() { HTTPSocket httpSock = new HTTPSocket(sock); if (httpSock.open() == false) return; HTTPRequest httpReq = new HTTPRequest(); httpReq.setSocket(httpSock); while (httpReq.read() == true) { httpServer.performRequestListener(httpReq); if (httpReq.isKeepAlive() == false) break; } httpSock.close(); }
protected void shutdown() { server.shutdown(); UTILS.sleep(300); System.out.println("--- SERVER STOPPED ---"); }
protected void start() { server.start(); UTILS.sleep(300); System.out.println("----------------------------------------"); }
@Test public void test() throws UnknownHostException, ExecutionException, InterruptedException { final JavaSerializer serializer = new JavaSerializer(); RPCHandler handler1 = new RPCHandler(serializer); RPCHandler handler2 = new RPCHandler(serializer); RoutingHandler router = new RoutingHandler( ImmutableMap.<String, ChannelHandler>builder() .put("/one", handler1) .put("/two", handler2) .build()); HTTPServer server = new HTTPServer( TcpOptions.create().localAddress(new InetSocketAddress(InetAddress.getLocalHost(), 0)), 2, router); RPCClient client1 = new RPCClient(TcpOptions.create(), "/one", 2, serializer); RPCClient client2 = new RPCClient(TcpOptions.create(), "/two", 2, serializer); RPCClient client3 = new RPCClient(TcpOptions.create(), "/noexisting", 2, serializer); RPC<Void, String> signature = RPC.signature("/method", Void.class, String.class); server.startAsync().awaitRunning(); try { handler1.register( signature, new ServerMethod<Void, String>() { @Override public ListenableFuture<String> call(Envelope envelope, Void argument) { return Futures.immediateFuture("one"); } }); handler2.register( signature, new ServerMethod<Void, String>() { @Override public ListenableFuture<String> call(Envelope envelope, Void argument) { return Futures.immediateFuture("two"); } }); ClientMethod<Void, String> method1 = client1.createMethod(signature); ClientMethod<Void, String> method2 = client2.createMethod(signature); ClientMethod<Void, String> method3 = client3.createMethod(signature); Envelope envelope = new Envelope(1000, "asdfasdfas"); assertEquals(method1.call(server.getLocalAddress(), envelope, null).get(), "one"); assertEquals(method2.call(server.getLocalAddress(), envelope, null).get(), "two"); try { assertEquals(method3.call(server.getLocalAddress(), envelope, null).get(), "wtf?"); fail(); } catch (ExecutionException e) { assertTrue(e.getCause() instanceof BadResponseException); assertTrue(e.getCause().getMessage().contains("404")); } } finally { client1.stopAsync().awaitTerminated(); client2.stopAsync().awaitTerminated(); client3.stopAsync().awaitTerminated(); server.stopAsync().awaitTerminated(); } }