Questo funziona:WebSockets non funziona senza WebApp
String webappDir = "...";
context = tomcat.addWebapp("/", new File(webappDir).getAbsolutePath());
Questo non lo fa:
context = tomcat.addContext("/", new File("").getAbsolutePath());
non ho davvero bisogno di un webappDir
in questo caso, perché non sto servendo tutte le pagine JSP o risorse lato client, sto semplicemente usando solo il lato server response.getWriter().println(...);
.
Non ci sono eccezioni, la websocket semplicemente non si apre.
Posso presumere che si tratti di un bug di tomcat?
Se non è necessario un contesto di applicazione Web, è possibile utilizzare l'API Java per WebSockets JSR 356 direttamente anziché l'API websockets di tomcat. – vzamanillo
È possibile creare il client come app Java autonoma con JSR 356, per creare un server è possibile utilizzare qualsiasi contenitore di server Java EE con supporto websockets, incorporato o meno (GlassFish, Apache Tomcat, Jetty ...) per distribuire un WebSocketServlet e ascoltare per i messaggi dei clienti. – vzamanillo
Penso che non sia possibile, l'API websockets è progettata per l'utilizzo di socket nelle applicazioni Web, quindi è necessario un contenitore, se non si ha bisogno di un'applicazione web non si usano websocket, si usano semplicemente socket Java. – vzamanillo