【发布时间】:2019-08-11 02:19:34
【问题描述】:
我正在使用 websockets 开发一个新应用程序,并决定在 wildfly 15 中使用 JSF 2.3。一切正常,直到我尝试使用 wildfly 管理控制台重新部署我的代码。 Websockets 在此之后停止工作,我可以在服务器重新启动后使其工作。我做了一个简单的应用程序,用 xhtml 正文中的这段代码测试这种行为:
<f:websocket channel="test" />
重新部署应用程序时,我注意到我的页面不断尝试向 websocket 端点发出请求,并在短时间内(大约 5 个请求/秒)不断接收多个 101(切换协议) 作为响应代码.
我使用wireshark捕获流量,发现在这个响应之后wildfly发送一个websocket连接关闭[FIN]。
我试图缩小这个问题的范围,在我看来就像一个野蝇虫。我使用了全新安装的 Wildfly 15.0.1.Final 和 16.0.0.Final。有没有人对此有解决方法或可行的解决方案?
【问题讨论】:
-
您是否尝试在 GlassFish 上做同样的事情?也许它与 WildFly 无关,而是 Mojarra。你能试试
o:omnifaces的作用吗 -
我昨天在 glassfish 上用一个非常简单的应用程序测试了它(只是测试网络 websocket 连接 - 尽可能缩小问题范围),但看不到我在 wildfly 上的相同行为(重复了 101 个回复),所以我认为我无法在 glassfish 上繁殖。在您发表评论后,我决定制作一个功能更强大的测试应用程序,并意识到在 glassfish 上重新加载应用程序后 websocket 通信停止工作。所以这应该与github.com/javaserverfaces/mojarra/issues/4368有关,只是在wildfly上发生的行为不同。
-
我也尝试过使用omnifaces,它在重新加载/重新部署后工作得很好
-
wildfly 21 上仍在发生这种情况,只是在错误报告上添加了评论。谢谢