У меня встроенный Jetty в мое приложение RCP Eclipse успешно. В моем приложении RCP, когда пользователь нажимает кнопку, открывается браузер и отображается страница сервлета. Файлы jsp находятся в разделенном каталоге, это веб-приложение angulajs.Завершение работы Embedded Jetty Server программно в Eclipse RCP
Я пытаюсь отключить встроенный сервер Jetty от плагина Uclick Eclipse, когда пользователь закрывает RCP. Сервер запускается в классе с именем Workshop
, который является частью веб-проекта, поэтому у меня нет доступа к экземпляру сервера для вызова сервера .stop() из Eclipse UI Plugin. Я пробовал код ниже, но в вену. 1> Настройка ShutdownHook для Workshop
класс веб-проекта
server = new Server();
server.setConnectors(new Connector[] { connector });
server.setHandler(handlers);
server.start();
handlers.addHandler(new ShutdownHandler(server, "abc"));
server.setStopAtShutdown(true);
server.setGracefulShutdown(7_000);
ShutdownThread.getInstance().run();
2> В моем Eclipse UI плагин, я добавил
Runtime.getRuntime().addShutdownHook(new Thread() {
@Override
public void run() {
try {
URL url = new URL("http://localhost:" + resultPortNo + "/shutdown?token=" + shutdownCookie);
HttpURLConnection connection = (HttpURLConnection)url.openConnection();
connection.setRequestMethod("POST");
connection.getResponseCode();
logger.info("Shutting down " + url + ": " + connection.getResponseMessage());
} catch (SocketException e) {
// logger.debug("Not running");
// Okay - the server is not running
} catch (IOException e) {
throw new RuntimeException(e);
}
}
});
HtppUrlConnection бросками ответ 404-NotFound code.So Jetty сервер все еще работает , Как мы обрабатываем встроенное закрытие Jetty из Eclipse UI Plugin.
Я прочитал много статей, но не могу найти ответ на мой вопрос.
Любая помощь будет оценена. Спасибо.