- В моей среде, Kibana 4.5.2 работает за «обратный прокси-сервлет», который создается путем расширения класса «ProxyServlet» Jetty.
- Это делается для доступа к веб-интерфейсу Kibana с помощью URL-адреса https://Jetty_Server_IP:8443/visual-analytics/proxy/ ... Запросы на этот URL-адрес перехватываются обратным прокси-сервером, запущенным на сервере Jetty Server, и перенаправляются на https://localhost:5601/ ... т.е. на сервер Kibana который работает на том же компьютере, что и Jetty Server.
- Затем сервер Kibana обрабатывает запрос, перенаправленный сервером Jetty, и возвращает ответ обратно в веб-браузер.
- ПРИМЕЧАНИЕ: Jetty работает в «встроенном режиме» в моем приложении.
Выпуск:
"обратный прокси-сервлет" отображаются в URL "/ визуальная аналитика/прокси/*".
Существует еще один «фильтр», который отображается на URL-адрес «/visual-analytics/proxy/elasticsearch/.kibana/search/*», в котором используется «ContinuationListener», как указано в следующем фрагменте кода:
ContinuationSupport.getContinuation(myRequestWrapper).addContinuationListener(new ContinuationListener() {
@Override
public void onTimeout(Continuation continuation) {
logger.log(Level.WARNING, "Request timeout...");
}
@Override
public void onComplete(Continuation continuation) {
HttpServletResponse httpResponse = (HttpServletResponse)continuation.getServletResponse();
if (httpResponse.getStatus() == HttpServletResponse.SC_OK || httpResponse.getStatus() == HttpServletResponse.SC_CREATED) {
//some business logic
}
}
});
chain.doFilter(myRequestWrapper, response);
выше ContinuationListener работает нормально с Jetty версии 8.1.15.v20140411 и метод слушателя OnComplete() был при вызове. Но после обновления версии Jetty до 9.3.14.v20161028, ContinuationListener больше не работает, то есть не вызывается ни метод onComplete() слушателя, ни метод onTimeout().
Любые указатели на то, что могло пойти не так, или как отладить этот вопрос, были бы весьма признательны. Глядя вперед для любого ответа ...