我正在使用 websockets 开发一个新应用程序,并决定在 wildfly 15 中使用 JSF 2.3。一切工作正常,直到我尝试使用 wildfly 管理控制台重新部署我的代码。 Websockets 在此之后停止工作,我可以在服务器重新启动后使其工作。我制作了一个简单的应用程序来使用 xhtml 正文中的以下代码来测试此行为:
<f:websocket channel="test" />
重新部署应用程序时,我注意到我的页面不断尝试向 websocket 端点发出请求,并不断以短时间间隔(大约 5 个请求/秒)接收多个 101(切换协议(protocol)) 作为响应代码.
我使用wireshark捕获流量,发现在此响应之后wildfly发送了一个websocket连接关闭[FIN]。
我试图缩小这个问题的范围,在我看来这就像一个野蝇。我使用了全新安装的 Wildfly 15.0.1.Final 和 16.0.0.Final。有人有解决方法或可行的解决方案吗?
最佳答案
此问题已在 Mojarra 2.3.15(2021 年 5 月发布)中修复。
它最初已于 2019 年 5 月通过 issue 4565 修复了想象中的 2.3.10 版本,其中我已将修复从 <o:socket>
反向移植到 <f:websocket>
中。不幸的是,它是在 Oracle -> Eclipse 过渡期间完成的,事后看来,这些更改似乎在困惑期间完全被忽略了。因此在 2.3.15 中通过 issue 4802 重新完成了它。
关于jsf - f :websocket stops working in JSF 2. 3 在 Wildfly 上重新部署应用程序后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55259915/