Umwelt bis 9.x:ContinuationListener scheint nicht in einer Filterkette von Jetty des ProxyServlet beendet zu arbeiten, nachdem Jetty von 8.x Upgrade
- In meiner Umgebung, Kibana 4.5.2 hinter läuft ein "Reverseproxy-Servlet", das durch Erweitern der "ProxyServlet" -Klasse von Jetty erzeugt wird. Diese
- erfolgt so, dass die Kibana Webinterface mit der URL zugegriffen werden kann https://Jetty_Server_IP:8443/visual-analytics/proxy/ ... Anfragen für diese URL werden durch den Reverse-Proxy in dem Jetty Server ausgeführt wird abgefangen und umgeleitet https://localhost:5601/ ... dh zum Kibana Server Das läuft auf demselben Rechner wie der Jetty Server.
- Der Kibana-Server verarbeitet dann die vom Jetty-Server weitergeleitete Anfrage und gibt die Antwort an den Webbrowser zurück.
- HINWEIS: Jetty läuft im "eingebetteten Modus" innerhalb meiner Anwendung.
Ausgabe:
Das "Reverse-Proxy-Servlet" an die URL zugeordnet "/ Visual-Analytics/proxy/*".
Es gibt einen weiteren "Filter", der der URL "/visualanalytics/proxy/elasticsearch/.kibana/search/*" zugeordnet ist, in der ein "ContinuationListener" verwendet wird, wie im folgenden Codefragment angegeben:
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);
Die oben ContinuationListener mit Jetty Version 8.1.15.v20140411 funktionierte gut und die onComplete() -Methode des Zuhörers genannt wurde. Aber nach dem Aktualisieren der Jetty-Version auf 9.3.14.v20161028 funktioniert der ContinuationListener nicht mehr, d. H., Weder die onComplete() - Methode noch die onTimeout() -Methode des Listeners wird aufgerufen.
Irgendwelche Hinweise darauf, was schief gelaufen sein könnte oder wie dieses Problem weiter zu debuggen wäre, würde sehr geschätzt werden. Wir freuen uns für jede Antwort ...