Below is the code to start Grizzly Http Server. If I press any key the server stops. Is there any way to keep it alive.
Jetty has join() method, which will not exit
I use a shutdown hook. Here's a code example:
public class ExampleServer {
private static final Logger logger = LoggerFactory
.getLogger(ExampleServer.class);
public static void main(String[] args) throws IOException {
new Server().doMain(args);
}
public void doMain(String[] args) throws IOException {
logger.info("Initiliazing Grizzly server..");
// set REST services packages
ResourceConfig resourceConfig = new PackagesResourceConfig(
"pt.lighthouselabs.services");
// instantiate server
final HttpServer server = GrizzlyServerFactory.createHttpServer(
"http://localhost:8080", resourceConfig);
// register shutdown hook
Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() {
@Override
public void run() {
logger.info("Stopping server..");
server.stop();
}
}, "shutdownHook"));
// run
try {
server.start();
logger.info("Press CTRL^C to exit..");
Thread.currentThread().join();
} catch (Exception e) {
logger.error(
"There was an error while starting Grizzly HTTP server.", e);
}
}
}