// Creates server with default socket backlog
server = HttpServer.create(inetAddress, 0);
server.setExecutor(Executors.newCachedThreadPool());
String path = url.toURI().getPath();
logger.fine("Creating HTTP Context at = "+path);
HttpContext context = server.createContext(path);
server.start();
// we have to get actual inetAddress from server, which can differ from the original in some cases.
// e.g. A port number of zero will let the system pick up an ephemeral port in a bind operation,
// or IP: 0.0.0.0 - which is used to monitor network traffic from any valid IP address
inetAddress = server.getAddress();
logger.fine("HTTP server started = "+inetAddress);
state = new ServerState(server, path);
servers.put(inetAddress, state);
return context;
}
}
server = state.getServer();
if (state.getPaths().contains(url.getPath())) {
String err = "Context with URL path "+url.getPath()+ " already exists on the server "+server.getAddress();
logger.fine(err);
throw new IllegalArgumentException(err);
}
logger.fine("Creating HTTP Context at = "+url.getPath());
HttpContext context = server.createContext(url.getPath());
state.oneMoreContext(url.getPath());
return context;
} catch(Exception e) {
throw new ServerRtException("server.rt.err",e );
}