org.eclipse.jetty.server.Server源码实例Demo

类org.eclipse.jetty.server.Server源码实例Demo

下面列出了org.eclipse.jetty.server.Server 类实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: heroic   文件: HttpServer.java
private AsyncFuture<Void> stop() {
    return async.call(() -> {
        final Server s;

        synchronized (lock) {
            if (server == null) {
                throw new IllegalStateException("Server has not been started");
            }

            s = server;
            server = null;
        }

        log.info("Stopping http server");
        s.stop();
        s.join();
        return null;
    });
}
 
源代码2 项目: homework_tester   文件: Main.java
public static void main(String[] args) throws Exception {
    Server server = new Server(8080);
    ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);

    context.addServlet(new ServletHolder(new WebSocketChatServlet()), "/chat");

    ResourceHandler resource_handler = new ResourceHandler();
    resource_handler.setDirectoriesListed(true);
    resource_handler.setResourceBase("public_html");

    HandlerList handlers = new HandlerList();
    handlers.setHandlers(new Handler[]{resource_handler, context});
    server.setHandler(handlers);

    server.start();
    System.out.println("Server started!");
    server.join();
}
 
源代码3 项目: AppStash   文件: JettyStart.java
public static void main(final String[] args) {
    if (args.length < 1) {
        System.out.println("JettyStart <httpport>");
        return;
    }

    Validate.notNull(args[0], "A Port is needed to start the server");

    Server server = new Server(Integer.valueOf(args[0]));
    WebAppContext context = new WebAppContext();
    context.setContextPath("/shop");
    context.setResourceBase("src/main/webapp/");
    context.setDescriptor("src/main/webapp/WEB-INF/web.xml");
    context.setParentLoaderPriority(true);
    server.setHandler(context);

    try {
        LOGGER.info("JETTY SERVER STARTING NOW ...");
        server.start();
        server.join();
    } catch (Exception e) {
        LOGGER.error("Jetty Server could not be started", e);
        System.exit(100);
    }
}
 
源代码4 项目: dapeng-soa   文件: ApiWebSite.java
public static Server createServer(int port) throws MalformedURLException, URISyntaxException {
    Server server = new Server();
    server.setStopAtShutdown(true);

    ServerConnector connector = new ServerConnector(server);
    connector.setPort(port);
    connector.setReuseAddress(true);

    server.setConnectors(new Connector[]{connector});

    WebAppContext webContext = new WebAppContext("webapp", CONTEXT);
    webContext.setBaseResource(Resource.newResource(new URL(ApiWebSite.class.getResource("/webapp/WEB-INF"), ".")));
    webContext.setClassLoader(ApiWebSite.class.getClassLoader());

    server.setHandler(webContext);

    return server;
}
 
源代码5 项目: AisAbnormal   文件: WebServer.java
public WebServer(
        int port,
        String repositoryName,
        String pathToEventDatabase,
        String eventRepositoryType,
        String eventDataDbHost,
        Integer eventDataDbPort,
        String eventDataDbName,
        String eventDataDbUsername,
        String eventDataDbPassword
    ) {
    server = new Server(port);
    this.context = new ServletContextHandler(ServletContextHandler.SESSIONS);
    this.repositoryName = repositoryName;
    this.pathToEventDatabase = pathToEventDatabase;
    this.eventRepositoryType = eventRepositoryType;
    this.eventDataDbHost = eventDataDbHost;
    this.eventDataDbPort = eventDataDbPort;
    this.eventDataDbName = eventDataDbName;
    this.eventDataDbUsername = eventDataDbUsername;
    this.eventDataDbPassword = eventDataDbPassword;
}
 
源代码6 项目: bootique   文件: BQInternalWebServerTestFactory.java
@Provides
@Singleton
Server provideServer(Environment env, ShutdownManager shutdownManager) {
    Server server = new Server();

    ServerConnector connector = new ServerConnector(server);
    connector.setPort(12025);
    server.addConnector(connector);

    ServletContextHandler handler = new ServletContextHandler();
    handler.setContextPath("/");

    DefaultServlet servlet = new DefaultServlet();

    ServletHolder holder = new ServletHolder(servlet);
    handler.addServlet(holder, "/*");
    handler.setResourceBase(env.getProperty("bq.internaljetty.base"));

    server.setHandler(handler);

    shutdownManager.addShutdownHook(() -> {
        server.stop();
    });

    return server;
}
 
源代码7 项目: phoebus   文件: EngineWebServer.java
public EngineWebServer(final int port)
{
    // Configure Jetty to use java.util.logging, and don't announce that it's doing that
    System.setProperty("org.eclipse.jetty.util.log.announce", "false");
    System.setProperty("org.eclipse.jetty.util.log.class", "org.eclipse.jetty.util.log.JavaUtilLog");

    server = new Server(port);

    final ServletContextHandler context = new ServletContextHandler(ServletContextHandler.NO_SECURITY | ServletContextHandler.NO_SESSIONS);

    // Our servlets
    context.addServlet(MainServlet.class, "/main/*");
    context.addServlet(DisconnectedServlet.class, "/disconnected/*");
    context.addServlet(GroupsServlet.class, "/groups/*");
    context.addServlet(GroupServlet.class, "/group/*");
    context.addServlet(ChannelServlet.class, "/channel/*");
    context.addServlet(RestartServlet.class, "/restart/*");
    context.addServlet(StopServlet.class, "/stop/*");

    // Serve static files from webroot to "/"
    context.setContextPath("/");
    context.setResourceBase(EngineWebServer.class.getResource("/webroot").toExternalForm());
    context.addServlet(DefaultServlet.class, "/");

    server.setHandler(context);
}
 
源代码8 项目: oxygen   文件: JettyWebServer.java
@Override
public void listen(int port) {
  JettyConf jettyConf = ConfigFactory.load(JettyConf.class);
  this.port = port;
  this.contextPath = WebConfigKeys.SERVER_CONTEXT_PATH.getValue();

  server = new Server();

  ServerConnector connector = new ServerConnector(server);
  server.addConnector(connector);
  configConnector(connector, jettyConf);

  WebAppContext webapp = new WebAppContext();
  server.setHandler(webapp);
  try {
    configWebapp(webapp, jettyConf);
    server.start();
  } catch (Exception e) {
    throw Exceptions.wrap(e);
  }
}
 
源代码9 项目: wisp   文件: ServerMain.java
public static void main(String[] args) throws Exception {

        ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
        context.setContextPath("/");

        Server jettyServer = new Server(8067);
        jettyServer.setHandler(context);

        ServletHolder jerseyServlet = context.addServlet(
                org.glassfish.jersey.servlet.ServletContainer.class, "/*");
        jerseyServlet.setInitOrder(0);

        // Tells the Jersey Servlet which REST service/class to load.
        jerseyServlet.setInitParameter(
                "jersey.config.server.provider.classnames",
                EntryPointTestHandler.class.getCanonicalName());

        try {
            jettyServer.start();
            jettyServer.join();
        } finally {
            jettyServer.destroy();
        }
    }
 
源代码10 项目: qmq   文件: Bootstrap.java
public static void main(String[] args) throws Exception {
    DynamicConfig config = DynamicConfigLoader.load("broker.properties");
    ServerWrapper wrapper = new ServerWrapper(config);
    Runtime.getRuntime().addShutdownHook(new Thread(wrapper::destroy));
    wrapper.start(true);

    if (wrapper.isSlave()) {
        final ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
        context.setContextPath("/");
        context.setResourceBase(System.getProperty("java.io.tmpdir"));
        final QueryMessageServlet servlet = new QueryMessageServlet(config, wrapper.getStorage());

        ServletHolder servletHolder = new ServletHolder(servlet);
        servletHolder.setAsyncSupported(true);
        context.addServlet(servletHolder, "/api/broker/message");

        final int port = config.getInt("slave.server.http.port", 8080);
        final Server server = new Server(port);
        server.setHandler(context);
        server.start();
        server.join();
    }
}
 
源代码11 项目: lucene-solr   文件: HttpServer2.java
private ServerConnector createHttpChannelConnector(
    Server server, HttpConfiguration httpConfig) {
  ServerConnector conn = new ServerConnector(server,
      conf.getInt(HTTP_ACCEPTOR_COUNT_KEY, HTTP_ACCEPTOR_COUNT_DEFAULT),
      conf.getInt(HTTP_SELECTOR_COUNT_KEY, HTTP_SELECTOR_COUNT_DEFAULT));
  ConnectionFactory connFactory = new HttpConnectionFactory(httpConfig);
  conn.addConnectionFactory(connFactory);
  if(Shell.WINDOWS) {
    // result of setting the SO_REUSEADDR flag is different on Windows
    // http://msdn.microsoft.com/en-us/library/ms740621(v=vs.85).aspx
    // without this 2 NN's can start on the same machine and listen on
    // the same port with indeterminate routing of incoming requests to them
    conn.setReuseAddress(false);
  }
  return conn;
}
 
源代码12 项目: athenz   文件: AthenzJettyContainerTest.java
@Test
public void testInitContainerInvalidHTTPSPort() {
    
    System.setProperty(AthenzConsts.ATHENZ_PROP_HTTP_PORT, "4080");
    System.setProperty(AthenzConsts.ATHENZ_PROP_HTTPS_PORT, "-10");

    AthenzJettyContainer container = AthenzJettyContainer.createJettyContainer();
    assertNotNull(container);
    
    Server server = container.getServer();
    Connector[] connectors = server.getConnectors();
    assertEquals(connectors.length, 2);
    
    assertTrue(connectors[0].getProtocols().contains("http/1.1"));
    
    assertTrue(connectors[1].getProtocols().contains("http/1.1"));
    assertTrue(connectors[1].getProtocols().contains("ssl"));
}
 
源代码13 项目: athenz   文件: AthenzJettyContainerTest.java
@Test
public void testCreateSSLContextObjectNoTrustStore() {
    
    AthenzJettyContainer container = new AthenzJettyContainer();
    
    System.setProperty(AthenzConsts.ATHENZ_PROP_KEYSTORE_PATH, "file:///tmp/keystore");
    System.setProperty(AthenzConsts.ATHENZ_PROP_KEYSTORE_TYPE, "PKCS12");
    System.setProperty(AthenzConsts.ATHENZ_PROP_KEYSTORE_PASSWORD, "pass123");
    System.setProperty(AthenzConsts.ATHENZ_PROP_EXCLUDED_CIPHER_SUITES, DEFAULT_EXCLUDED_CIPHERS);
    System.setProperty(AthenzConsts.ATHENZ_PROP_INCLUDED_CIPHER_SUITES, DEFAULT_INCLUDED_CIPHERS);
    System.setProperty(AthenzConsts.ATHENZ_PROP_EXCLUDED_PROTOCOLS, AthenzJettyContainer.ATHENZ_DEFAULT_EXCLUDED_PROTOCOLS);
    
    SslContextFactory.Server sslContextFactory = container.createSSLContextObject(false);
    assertNotNull(sslContextFactory);
    assertEquals(sslContextFactory.getKeyStorePath(), "file:///tmp/keystore");
    assertEquals(sslContextFactory.getKeyStoreType(), "PKCS12");
    assertNull(sslContextFactory.getTrustStore());
    // store type always defaults to PKCS12
    assertEquals(sslContextFactory.getTrustStoreType(), "PKCS12");
    assertEquals(sslContextFactory.getExcludeCipherSuites(), DEFAULT_EXCLUDED_CIPHERS.split(","));
    assertEquals(sslContextFactory.getIncludeCipherSuites(), DEFAULT_INCLUDED_CIPHERS.split(","));
    assertEquals(sslContextFactory.getExcludeProtocols(), AthenzJettyContainer.ATHENZ_DEFAULT_EXCLUDED_PROTOCOLS.split(","));
}
 
源代码14 项目: git-as-svn   文件: WebServer.java
public WebServer(@NotNull SharedContext context, @NotNull Server server, @Nullable URL baseUrl, @NotNull EncryptionFactory tokenFactory) throws URISyntaxException {
  this.context = context;
  this.server = server;
  this.baseUrl = baseUrl == null ? null : baseUrl.toURI();
  this.tokenFactory = tokenFactory;
  final ServletContextHandler contextHandler = new ServletContextHandler();
  contextHandler.setContextPath("/");
  handler = contextHandler.getServletHandler();

  final RequestLogHandler logHandler = new RequestLogHandler();
  logHandler.setRequestLog((request, response) -> {
    final User user = (User) request.getAttribute(User.class.getName());
    final String username = (user == null || user.isAnonymous()) ? "" : user.getUsername();
    log.info("{}:{} - {} - \"{} {}\" {} {}", request.getRemoteHost(), request.getRemotePort(), username, request.getMethod(), request.getHttpURI(), response.getStatus(), response.getReason());
  });

  final HandlerCollection handlers = new HandlerCollection();
  handlers.addHandler(contextHandler);
  handlers.addHandler(logHandler);
  server.setHandler(handlers);
}
 
源代码15 项目: xdocreport.samples   文件: EmbeddedServer.java
public static void main( String[] args )
    throws Exception
{
    Server server = new Server( 8080 );

    WebAppContext webappcontext = new WebAppContext( "src/main/webapp", "/jaxrs" );

    ContextHandlerCollection servlet_contexts = new ContextHandlerCollection();
    webappcontext.setClassLoader( Thread.currentThread().getContextClassLoader() );
    HandlerCollection handlers = new HandlerCollection();
    handlers.setHandlers( new Handler[] { servlet_contexts, webappcontext, new DefaultHandler() } );

    server.setHandler( handlers );


    server.start();
    server.join();
}
 
源代码16 项目: knox   文件: WebsocketBackendUrlTest.java
@BeforeClass
public static void setUpBeforeClass() throws Exception {
  WebsocketEchoTestBase.setUpBeforeClass();

  backendServer = new Server();
  ServerConnector connector = new ServerConnector(backendServer);
  backendServer.addConnector(connector);

  String host = connector.getHost();
  if (host == null) {
    host = "localhost";
  }
  int port = connector.getLocalPort();
  serverUri = new URI(String.format(Locale.ROOT, "ws://%s:%d/", host, port));
  backendServerUri = new URI(String.format(Locale.ROOT, "ws://%s:%d/testpart/", host, port));
  WebsocketEchoTestBase.setupGatewayConfig(backendServerUri.toString());
}
 
源代码17 项目: XRTB   文件: Zippy.java
/**
 * Starts the JETTY server
 */

 public void run() {
	Server server = new Server(port);
	Handler handler = new Handler();

	try {
		SessionHandler sh = new SessionHandler(); // org.eclipse.jetty.server.session.SessionHandler
		sh.addEventListener(new CustomListener());
		sh.setHandler(handler);
		server.setHandler(sh);
		server.start();
		server.join();
	} catch (Exception e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
}
 
源代码18 项目: heroic   文件: JettyServerConnector.java
public ServerConnector setup(final Server server, final InetSocketAddress address) {
    final HttpConfiguration config = this.config.build();

    final ConnectionFactory[] factories = this.factories
        .stream()
        .map(f -> f.setup(config))
        .toArray(size -> new ConnectionFactory[size]);

    final ServerConnector c = new ServerConnector(server, factories);

    c.setHost(this.address.map(a -> a.getHostString()).orElseGet(address::getHostString));
    c.setPort(this.address.map(a -> a.getPort()).orElseGet(address::getPort));

    defaultProtocol.ifPresent(c::setDefaultProtocol);
    return c;
}
 
源代码19 项目: Jax-RS-Performance-Comparison   文件: Main.java
public static void main(String[] args) throws Exception {
    String host = "0.0.0.0";
    int port = 8080;
    if (args.length > 0) {
        host = args[0];
    }
    if (args.length > 1) {
        port = Integer.parseInt(args[1]);
    }

    final Server server = startServer(host, port);
    System.in.read();
    server.stop();
}
 
源代码20 项目: java-slack-sdk   文件: SlackAppServer.java
private static void removeServerHeader(Server server) {
    // https://stackoverflow.com/a/15675075/840108
    for (Connector y : server.getConnectors()) {
        for (ConnectionFactory x : y.getConnectionFactories()) {
            if (x instanceof HttpConnectionFactory) {
                ((HttpConnectionFactory) x).getHttpConfiguration().setSendServerVersion(false);
            }
        }
    }
}
 
源代码21 项目: zsync4j   文件: BaseJettyTest.java
@Before
public void startJetty() throws Exception {
  this.server = new Server(0);
  ServletContextHandler servletContextHandler = new ServletContextHandler();
  servletContextHandler.setContextPath("/");
  servletContextHandler.setBaseResource(Resource.newClassPathResource(WEB_ROOT));
  ServletHolder defaultServletHolder = new ServletHolder("default", DefaultServlet.class);
  defaultServletHolder.setInitParameter("acceptRanges", "true");
  servletContextHandler.addServlet(defaultServletHolder, "/");
  this.server.setHandler(servletContextHandler);
  this.server.start();
  this.port = ((ServerConnector) this.server.getConnectors()[0]).getLocalPort();
}
 
源代码22 项目: cxf   文件: BookCxfContinuationServlet3Server.java
private Server httpServer(CXFNonSpringServlet cxf) {
    Server server = new Server(Integer.parseInt(PORT));
    ServletHandler handler = new ServletHandler();
    server.setHandler(handler);
    handler.addServletWithMapping(new ServletHolder(cxf), "/*");
    return server;
}
 
源代码23 项目: distributedlog   文件: ServletReporter.java
public ServletReporter(MetricRegistry metricRegistry,
                       HealthCheckRegistry healthCheckRegistry,
                       int port) {
    this.metricRegistry = metricRegistry;
    this.healthCheckRegistry = healthCheckRegistry;
    this.port = port;
    this.jettyServer = new Server(port);
}
 
protected SessionHandler findPreferredBundleHandler(Session localSession, Server server, Handler[] handlers) {
    if (PREFERRED_SYMBOLIC_NAME==null) return null;

    SessionHandler preferredHandler = null;

    if (handlers != null) {
        for (Handler handler: handlers) {
            SessionHandler sh = (SessionHandler) handler;
            ContextHandler.Context ctx = getContext(sh);
            if (ctx!=null) {
                BundleContext bundle = (BundleContext) ctx.getAttribute("osgi-bundlecontext");
                if (bundle!=null) {
                    if (PREFERRED_SYMBOLIC_NAME.equals(bundle.getBundle().getSymbolicName())) {
                        if (preferredHandler==null) {
                            preferredHandler = sh;
                            server.setAttribute(KEY_PREFERRED_SESSION_HANDLER_INSTANCE, sh);
                            log.trace("Recording "+info(sh)+" as server-wide preferred session handler");
                        } else {
                            log.warn("Multiple preferred session handlers detected; keeping "+info(preferredHandler)+", ignoring "+info(sh));
                        }
                    }
                }
            }
        }
    }
    if (preferredHandler==null) {
        log.warn("Did not find handler in bundle "+PREFERRED_SYMBOLIC_NAME+"; not using server-wide handler; check whether bundle is installed!");
    }
    return preferredHandler;
}
 
源代码25 项目: knox   文件: GatewayPortMappingConfigTest.java
@Test
public void testCheckPortConflict()
    throws IOException, NoSuchFieldException, IllegalAccessException {
  /* Check port conflict with default port */
  exception.expect(IOException.class);
  exception.expectMessage(String.format(Locale.ROOT,
      " Port %d used by topology %s is used by other topology, ports for topologies (if defined) have to be unique. ",
      huronPort, "eerie"));

  GatewayServer gatewayServer = new GatewayServer(gatewayConfig);

  Server mockedJetty = EasyMock.createNiceMock(Server.class);

  ServerConnector mockConnector = EasyMock.createNiceMock(ServerConnector.class);
  EasyMock.expect(mockConnector.getPort()).andReturn(huronPort).anyTimes();
  EasyMock.replay(mockConnector);

  ServerConnector[] mockConnectorArray = new ServerConnector[] {mockConnector};

  EasyMock.expect(mockedJetty.getConnectors()).andReturn(mockConnectorArray).anyTimes();

  EasyMock.replay(mockedJetty);

  Field field = gatewayServer.getClass().getDeclaredField("jetty");
  field.setAccessible(true);
  field.set(gatewayServer, mockedJetty);

  gatewayServer.checkPortConflict(huronPort, "eerie", gatewayConfig);
}
 
@BeforeClass
public static void beforeClass() throws Exception {
  String path = Paths.get("").toAbsolutePath().toString();

  ourLog.info("Project base path is: {}", path);

  ourServer = new Server(0);

  WebAppContext webAppContext = new WebAppContext();
  webAppContext.setContextPath("/hapi-fhir-jpaserver");
  webAppContext.setDisplayName("HAPI FHIR");
  webAppContext.setDescriptor(path + "/src/main/webapp/WEB-INF/web.xml");
  webAppContext.setResourceBase(path + "/target/hapi-fhir-jpaserver-starter");
  webAppContext.setParentLoaderPriority(true);

  ourServer.setHandler(webAppContext);
  ourServer.start();

  ourPort = JettyUtil.getPortForStartedServer(ourServer);

  ourCtx.getRestfulClientFactory().setServerValidationMode(ServerValidationModeEnum.NEVER);
  ourCtx.getRestfulClientFactory().setSocketTimeout(1200 * 1000);
  String ourServerBase = HapiProperties.getServerAddress();
  ourServerBase = "http://localhost:" + ourPort + "/hapi-fhir-jpaserver/fhir/";

  ourClient = ourCtx.newRestfulGenericClient(ourServerBase);
  ourClient.registerInterceptor(new LoggingInterceptor(true));

  ourClientTenantInterceptor = new UrlTenantSelectionInterceptor();
  ourClient.registerInterceptor(ourClientTenantInterceptor);
}
 
源代码27 项目: java-slack-sdk   文件: MockSlackApiServer.java
public MockSlackApiServer(int port) {
    this.port = port;
    server = new Server(this.port);
    ServletHandler handler = new ServletHandler();
    server.setHandler(handler);
    handler.addServletWithMapping(MockSlackApi.class, "/*");
}
 
源代码28 项目: calcite   文件: HttpServer.java
void stop() {
  if (server == null) {
    throw new RuntimeException("Server is already stopped");
  } else {
    try {
      final Server server1 = server;
      port = -1;
      server = null;
      server1.stop();
    } catch (Exception e) {
      throw new RuntimeException(e);
    }
  }
}
 
源代码29 项目: qmq   文件: Bootstrap.java
public static void main(String[] args) throws Exception {
    DynamicConfig config = DynamicConfigLoader.load("backup.properties");
    DynamicConfig deadConfig = DynamicConfigLoader.load("dead_backup.properties");
    ServerWrapper wrapper = new ServerWrapper(config, deadConfig);
    Runtime.getRuntime().addShutdownHook(new Thread(wrapper::destroy));
    wrapper.start();

    final ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
    context.setContextPath("/");
    context.setResourceBase(System.getProperty("java.io.tmpdir"));

    final MessageService messageService = wrapper.getMessageService();

    DeadMessageApiServlet deadMessageApiServlet = new DeadMessageApiServlet(messageService);
    addServlet(context, deadMessageApiServlet, "/api/message/dead");

    MessageApiServlet messageApiServlet = new MessageApiServlet(messageService);
    addServlet(context, messageApiServlet, "/api/message");

    MessageDetailsServlet messageDetailsServlet = new MessageDetailsServlet(messageService);
    addServlet(context, messageDetailsServlet, "/api/message/detail");

    MessageRecordsServlet messageRecordsServlet = new MessageRecordsServlet(messageService);
    addServlet(context, messageRecordsServlet, "/api/message/records");

    int port = config.getInt("backup.server.http.port", 8080);
    final Server server = new Server(port);
    server.setHandler(context);
    server.start();
    server.join();
}
 
源代码30 项目: android-uiconductor   文件: StartUpInit.java
private void initLogServer() {
  if (logServerThread != null && logServerThread.isAlive()) {
    logServerThread.interrupt();
  }

  if (logServer != null && logServer.isStarted()) {
    try {
      logServer.stop();
    } catch (Exception e) {
      logger.warning(e.getMessage());
    }
  }

  logServerThread =
      new Thread(
          () -> {
            logServer = new Server(8888);

            WebSocketHandler wsHandler =
                new WebSocketHandler() {
                  @Override
                  public void configure(WebSocketServletFactory factory) {
                    factory.register(LogWebSocketHandler.class);
                  }
                };
            logServer.setHandler(wsHandler);

            try {
              logServer.start();
              logServer.join();
            } catch (Exception e) {
              logger.warning(e.getMessage());
            }
          });
  logServerThread.start();
}
 
源代码评论
动弹
沙发等你来抢
 类所在包
 类方法
 同包方法