我曾尝试在Spring App Service(Windows,java 8和tomcat 8.5)上部署Spring Boot应用程序,以作为战争。
这是一个用于服务器发送事件的Spring Webflux应用程序,因此我需要获得http2支持。
但是,即使在App Service中启用了http2,我也注意到SSE无法正常工作。 在日志中查看,我发现它仍然在使用HTTP / 1.1。
来自kudu D:\ home \ LogFiles \ http \ RawLogs
127.0.0.1 - - [12/Nov/2019:20:19:43 +0000] "GET /api/rooms/someroom/users/Gms_2290/info/subscribe HTTP/1.1" 200 5 144
127.0.0.1 - - [12/Nov/2019:20:19:44 +0000] "GET /api/rooms/someroom/users/Gms_2290/music/subscribe HTTP/1.1" 200 5 16
127.0.0.1 - - [12/Nov/2019:20:19:46 +0000] "GET /api/rooms/someroom/users/Gms_2290/heartbeat HTTP/1.1" 200 5 142
127.0.0.1 - - [12/Nov/2019:20:19:46 +0000] "GET /api/rooms/someroom/users/Gms_2290/info/subscribe HTTP/1.1" 200 5 19
127.0.0.1 - - [12/Nov/2019:20:19:48 +0000] "GET /api/rooms/someroom/users/Gms_2290/music/subscribe HTTP/1.1" 200 5 32
127.0.0.1 - - [12/Nov/2019:20:19:49 +0000] "GET /api/rooms/someroom/users/Gms_2290/heartbeat HTTP/1.1" 200 5 16
我尝试过的事情
- 我尝试使用Java版本(在8和9之间切换)
- 我尝试使用Tomcat版本(8.5和9)
Linux角度
我首先尝试将应用程序部署到Linux应用服务(带有Java 8和Tomcat 8.5)
这导致了日志流中出现以下错误
java.lang.IllegalStateException: Async support must be enabled on a servlet and for all filters involved in async request processing
我怀疑Tomcat可能需要一些额外的配置才能使用App Service SSL,从而允许使用http2,但是我找不到一种很好的方法来配置所用的Tomcat。
感谢您的帮助!