Das funktioniert:
%Vor%Das tut nicht:
%Vor% Ich brauche in diesem Fall keine webappDir
, da ich keine JSP-Seiten oder clientseitige Ressourcen belege. Ich benutze einfach response.getWriter().println(...);
nur serverseitig.
Es wird keine Ausnahme ausgelöst, der Websocket öffnet sich einfach nicht.
Kann ich davon ausgehen, dass dies ein Tomcat Bug ist?
Nun, diese beiden sind völlig unterschiedliche Funktionen. Wenn Sie das Javadoc für die Funktion addContext
betrachten, können Sie sehen, dass Sie den Kontext einrichten müssen, um Websocket verwenden zu können. Dies wird aus dem API-Dokument abgerufen.
Fügen Sie einen Kontext - programmatischen Modus, keine Standard web.xml verwendet. Das heisst Es gibt keine JSP-Unterstützung (kein JSP-Servlet), kein Standard-Servlet und keine Unterstützung für Web-Sockets, es sei denn, sie wurde explizit über das Programm aktiviert Schnittstelle.
Also, in Ihrem Fall, ich denke, Sie können den Testfall in diesem link wie Sie einen Endpunkt in den Kontext einfügen.
Ob Sie davon ausgehen können, dass dies ein Bug ist oder nicht. Persönlich denke ich nicht, dass dies ein Fehler ist, da der Entwickler selbst bereits erwähnt, dass sie die Web-Socket-Verbindung nicht bereitstellen. Aber um sicherzugehen, können Sie sie kontaktieren und fragen;).
Wenn Sie sich die Tests ansehen (test / org / apache / tomcat / websocket im Quellcode), tun sie
%Vor% Beachten Sie, dass die Weitergabe von null
anstelle eines Kontextpfads einen aktuellen Tomcat 8 (nicht älter als mehrere Monate) erfordert. Die aktuelle Version ist 8.0.22.
Kann ich davon ausgehen, dass dies ein Tomcat Bug ist?
Die Regel "vor dem Einreichen eines Fehlers" besteht darin, auf der Mailing-Liste der Benutzer zu fragen, nicht auf stackoverflow.
Tags und Links java tomcat bugzilla embedded-tomcat-8