public static void main(String[] args) throws Exception { System.out.println("Jersey performance test web service application"); final String jaxRsApp = args.length > 0 ? args[0] : null; //noinspection unchecked final ResourceConfig resourceConfig = ResourceConfig .forApplicationClass((Class<? extends Application>) Class.forName(jaxRsApp)); URI baseUri = args.length > 1 ? URI.create(args[1]) : BASE_URI; int selectors = args.length > 2 ? Integer.parseInt(args[2]) : DEFAULT_SELECTORS; int workers = args.length > 3 ? Integer.parseInt(args[3]) : DEFAULT_WORKERS; final HttpServer server = GrizzlyHttpServerFactory.createHttpServer(baseUri, resourceConfig, false); final TCPNIOTransport transport = server.getListener("grizzly").getTransport(); transport.setSelectorRunnersCount(selectors); transport.setWorkerThreadPoolConfig(ThreadPoolConfig.defaultConfig().setCorePoolSize(workers).setMaxPoolSize(workers)); server.start(); System.out.println(String.format("Application started.\nTry out %s\nHit Ctrl-C to stop it...", baseUri)); while (server.isStarted()) { Thread.sleep(600000); } } }
@Override public void run() { server.shutdownNow(); } }));
public boolean start(int httpPort) { // ideally greater than reserved port but then port 80 is also valid Preconditions.checkArgument(httpPort > 0); baseUri = URI.create("http://0.0.0.0:" + Integer.toString(httpPort) + "/"); httpServer = GrizzlyHttpServerFactory.createHttpServer(baseUri, this); setupSwagger(httpServer); ClassLoader classLoader = ControllerAdminApiApplication.class.getClassLoader(); // This is ugly from typical patterns to setup static resources but all our APIs are // at path "/". So, configuring static handler for path "/" does not work well. // Configuring this as a default servlet is an option but that is still ugly if we evolve // So, we setup specific handlers for static resource directory. index.html is served directly // by a jersey handler httpServer.getServerConfiguration() .addHttpHandler(new CLStaticHttpHandler(classLoader, "/static/query/"), "/query/"); httpServer.getServerConfiguration().addHttpHandler(new CLStaticHttpHandler(classLoader, "/static/css/"), "/css/"); httpServer.getServerConfiguration().addHttpHandler(new CLStaticHttpHandler(classLoader, "/static/js/"), "/js/"); // without this explicit request to /index.html will not work httpServer.getServerConfiguration().addHttpHandler(new CLStaticHttpHandler(classLoader, "/static/"), "/index.html"); started = true; LOGGER.info("Start jersey admin API on port: {}", httpPort); return true; }
private void shutdownHttpServer(HttpServer httpServer, HostAndPort bindAddress) { if (httpServer != null && httpServer.isStarted()) { LOG.info("Shutting down HTTP listener at <{}>", bindAddress); httpServer.shutdownNow(); } }
@Override public void start() { if (server.isStarted()) { LOGGER.log(Level.WARNING, "Ignoring start request - GrizzlyWebTestContainer is already started."); } else { LOGGER.log(Level.FINE, "Starting GrizzlyWebTestContainer..."); try { server.start(); if (baseUri.getPort() == 0) { baseUri = UriBuilder.fromUri(baseUri) .port(server.getListener("grizzly").getPort()) .build(); LOGGER.log(Level.INFO, "Started GrizzlyWebTestContainer at the base URI " + baseUri); } } catch (final IOException ioe) { throw new TestContainerException(ioe); } } }
public static HttpServer startServer(String webRootPath) { final HttpServer server = new HttpServer(); Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() { @Override public void run() { server.shutdownNow(); } })); final NetworkListener listener = new NetworkListener("grizzly", "localhost", PORT); server.addListener(listener); final ServerConfiguration config = server.getServerConfiguration(); // add handler for serving static content config.addHttpHandler(new CLStaticHttpHandler(Main.class.getClassLoader(), WEB_ROOT), APP_PATH); // add handler for serving JAX-RS resources config.addHttpHandler(RuntimeDelegate.getInstance().createEndpoint(createResourceConfig(), GrizzlyHttpContainer.class), APP_PATH); try { // Start the server. server.start(); } catch (Exception ex) { throw new ProcessingException("Exception thrown when trying to start grizzly server", ex); } return server; }
public void start() throws IOException, URISyntaxException { server.start(); endpoint = new URI(endpoint.getScheme(), endpoint.getUserInfo(), endpoint.getHost(), getPort(), endpoint.getPath(), endpoint.getQuery(), endpoint.getFragment()); rc.setEndPoint(endpoint); }
final boolean start) { final NetworkListener listener = new NetworkListener("grizzly", host, port); listener.setSecure(secure); if (sslEngineConfigurator != null) { listener.setSSLEngineConfig(sslEngineConfigurator); final HttpServer server = new HttpServer(); server.addListener(listener); final ServerConfiguration config = server.getServerConfiguration(); if (handler != null) { final String path = uri.getPath().replaceAll("/{2,}", "/"); config.addHttpHandler(handler, HttpHandlerRegistration.bulder().contextPath(contextPath).build()); config.setPassTraceRequest(true); config.setDefaultQueryEncoding(Charsets.UTF8_CHARSET); server.start(); } catch (final IOException ex) { server.shutdownNow(); throw new ProcessingException(LocalizationMessages.FAILED_TO_START_SERVER(ex.getMessage()), ex);
URI uri = new URI("http://0.0.0.0:8080/"); HttpServer server = GrizzlyHttpServerFactory.createHttpServer(uri); ServerConfiguration config = server.getServerConfiguration(); config.addHttpHandler(handler, "/"); server.start(); System.in.read();
private void setupSwagger(HttpServer httpServer) { BeanConfig beanConfig = new BeanConfig(); beanConfig.setTitle("Pinot Server API"); beanConfig.setDescription("APIs for accessing Pinot server information"); beanConfig.setContact("https://github.com/apache/incubator-pinot"); beanConfig.setVersion("1.0"); beanConfig.setSchemes(new String[]{"http"}); beanConfig.setBasePath(baseUri.getPath()); beanConfig.setResourcePackage(RESOURCE_PACKAGE); beanConfig.setScan(true); CLStaticHttpHandler staticHttpHandler = new CLStaticHttpHandler(AdminApiApplication.class.getClassLoader(), "/api/"); // map both /api and /help to swagger docs. /api because it looks nice. /help for backward compatibility httpServer.getServerConfiguration().addHttpHandler(staticHttpHandler, "/api/"); httpServer.getServerConfiguration().addHttpHandler(staticHttpHandler, "/help/"); URL swaggerDistLocation = AdminApiApplication.class.getClassLoader().getResource("META-INF/resources/webjars/swagger-ui/2.2.2/"); CLStaticHttpHandler swaggerDist = new CLStaticHttpHandler(new URLClassLoader(new URL[]{swaggerDistLocation})); httpServer.getServerConfiguration().addHttpHandler(swaggerDist, "/swaggerui-dist/"); }
public static void main(final String[] args) throws Exception { baseUri = args.length > 0 ? URI.create(args[0]) : BASE_URI; final HttpServer server = GrizzlyHttpServerFactory.createHttpServer(baseUri, createApp()); LOG.log(Level.SEVERE, "An error occurred during test data generation. ", e); server.shutdown();
public static void main(String[] args) { try { System.out.println("\"JAX-RS 2.1 Server-Sent Events\" Jersey Example App"); final ResourceConfig resourceConfig = new ResourceConfig(JaxRsServerSentEventsResource.class); final HttpServer server = GrizzlyHttpServerFactory.createHttpServer(BASE_URI, resourceConfig, false); Runtime.getRuntime().addShutdownHook(new Thread(server::shutdownNow)); server.start(); System.out.println(String.format("Application started.\nTry out %s%s\nStop the application using CTRL+C", BASE_URI, ROOT_PATH)); Thread.currentThread().join(); } catch (IOException | InterruptedException ex) { Logger.getLogger(App.class.getName()).log(Level.SEVERE, null, ex); } } }
params.port, params.securePort, params.bindAddress); LOG.info("OTP server base path is {}", params.basePath); HttpServer httpServer = new HttpServer(); NetworkListener httpsListener = new NetworkListener("otp_secure", params.bindAddress, params.securePort); httpsListener.setSecure(true); cc.setCompressableMimeTypes("application/json", "text/json"); // the mime types to compress listener.getTransport().setWorkerThreadPoolConfig(threadPoolConfig); httpServer.addListener(listener); httpServer.getServerConfiguration().addHttpHandler(dynamicHandler, "/otp/"); staticHandler.setFileCacheEnabled(false); httpServer.getServerConfiguration().addHttpHandler(staticHandler, "/"); params.clientDirectory.getAbsolutePath()); localHandler.setFileCacheEnabled(false); httpServer.getServerConfiguration().addHttpHandler(localHandler, "/local"); httpServer.start(); LOG.info("Grizzly server running."); Thread.currentThread().join(); httpServer.shutdown();
public void run() { int port = config.getProperty("port") != null ? Integer.parseInt(config.getProperty("port")) : DEFAULT_PORT; String addr = config.getProperty("bind-address") != null ? config.getProperty("bind-address") : DEFAULT_BIND_ADDRESS; LOG.info("Starting analyst broker on port {} of interface {}", port, addr); HttpServer httpServer = new HttpServer(); NetworkListener networkListener = new NetworkListener("broker", addr, port); // We avoid blocking IO, and the following line allows us to see closed connections. networkListener.getTransport().setIOStrategy(SameThreadIOStrategy.getInstance()); httpServer.addListener(networkListener); // Bypass Jersey etc. and add a low-level Grizzly handler. // As in servlets, * is needed in base path to identify the "rest" of the path. broker = new Broker(config, addr, port); httpServer.getServerConfiguration().addHttpHandler(new BrokerHttpHandler(broker), "/*"); try { httpServer.start(); LOG.info("Broker running."); broker.run(); // run queue broker task pump in this thread Thread.currentThread().join(); } catch (BindException be) { LOG.error("Cannot bind to port {}. Is it already in use?", port); } catch (IOException ioe) { LOG.error("IO exception while starting server."); } catch (InterruptedException ie) { LOG.info("Interrupted, shutting down."); } httpServer.shutdown(); }
@BeforeMethod public void setup() throws Exception { generateTempFile(); server = new HttpServer(); NetworkListener nonSecure = new NetworkListener("nonsecure", DEFAULT_NETWORK_HOST, NON_SECURE_PORT); NetworkListener secure = new NetworkListener("secure", DEFAULT_NETWORK_HOST, SECURE_PORT); secure.setSecure(true); secure.setSSLEngineConfig(createSSLConfig()); server.addListener(nonSecure); server.addListener(secure); server.getServerConfiguration().addHttpHandler(new ConsumingHandler(), "/test"); server.start(); }
@Override protected void startUp() throws Exception { httpServer = GrizzlyHttpServerFactory.createHttpServer( uri, createResourceConfig(), false); httpServer.getServerConfiguration().setDefaultErrorPageGenerator(ERROR_PAGE_GENERATOR); httpServer.start(); }
public SwiftProxy(Properties properties, BlobStoreLocator locator, URI endpoint) { this.endpoint = requireNonNull(endpoint); rc = new BounceResourceConfig(properties, locator); if (logger.isDebugEnabled()) { rc.register(new LoggingFilter(java.util.logging.Logger.getGlobal(), false)); } server = GrizzlyHttpServerFactory.createHttpServer(endpoint, rc, false); server.getListeners().forEach(listener -> { listener.registerAddOn(new ContentLengthAddOn()); }); // allow HTTP DELETE to have payload for multi-object delete server.getServerConfiguration().setAllowPayloadForUndefinedHttpMethods(true); RuntimeDelegate.setInstance(new RuntimeDelegateImpl(RuntimeDelegate.getInstance())); }
@Override protected void before() throws Throwable { docRoot.create(); httpServer = org.glassfish.grizzly.http.server.HttpServer.createSimpleServer(docRoot.getRoot().getAbsolutePath()); httpServer.start(); }