JSF2.3.15 Mojara:Websocket试图无限地而不是有限地重新连接

JSF2.3.15 Mojara:Websocket试图无限地而不是有限地重新连接,jsf,websocket,mojarra,jsf-2.3,Jsf,Websocket,Mojarra,Jsf 2.3,正如websocket bug中所说,“websocket试图无限地而不是有限地重新连接(因为特定于浏览器的bug)”显然在版本2.3.15中没有得到修复。我已经在WildFly 21.0.0.Final中尝试过这个版本,手动添加了2.3.15 Mojarra,但结果相同。如果应用程序在Eclipse中(热)重新部署,则会发生此错误: 使用Eclipse 4.18、WildFly 21.0.0.Final和手动添加的JSF 2.3.15 Mojarra、Firefox 62.0.3或MS E

正如websocket bug中所说,“websocket试图无限地而不是有限地重新连接(因为特定于浏览器的bug)”显然在版本2.3.15中没有得到修复。我已经在WildFly 21.0.0.Final中尝试过这个版本,手动添加了2.3.15 Mojarra,但结果相同。如果应用程序在Eclipse中(热)重新部署,则会发生此错误:

使用Eclipse 4.18、WildFly 21.0.0.Final和手动添加的JSF 2.3.15 Mojarra、Firefox 62.0.3或MS Edge 90.0.818进行测试

豆子:

@Named
@视域
公共类FooBean实现了可序列化{
私有静态最终长serialVersionUID=-9057373496036307133L;
@注入
@推
私人频道;
公开无效测试(){
fooChannel.send(“测试”);
}
}
Facelet:


bean是ViewScope还是SessionScope并不重要

有人遇到过这个问题吗

另请参见打开的bug

更新1 (20.05.2021)

现在,我尝试了以下方法:

豆子:

@Named
@会议范围
公共类FooBean实现了可序列化{
私有静态最终长serialVersionUID=-9057373496036307133L;
@注入
@推
私人频道;
私有日期=新日期();
公开无效测试(){
fooChannel.send(“测试”);
}
公共字符串getDate(){
返回日期。toString();
}
}
Facelet:


  • web.xml
    中设置
    ,以启用会话持久性
  • 已从服务器中删除应用程序
  • 清理服务器
  • 启动应用程序
当我按下按钮时,所有工作都按预期进行:

然后我在bean中做了一个小改动,服务器重新部署了应用程序。这显示在Eclipse控制台中。之后,我在浏览器中重新加载了应用程序。因此,第一张图片的时间戳没有更改(会话持久性),但现在websocket流量会在未按下按钮的情况下涌入控制台,并且不会结束:

我必须停止服务器以终止此洪泛

此外,它还消耗大量cpu:


到目前为止,Firefox 88.0.1(64位)

Thx。我将尝试会话持久化,但在
standalone.xml
中使用
..
我得到
WFLYUT0024:无法持久化会话属性com.sun.faces.application.view.activeViewMaps的值…用于会话mY55aj5dyLC9PEwHhygUKoY-1N82ATNDuDIHLJPg:java.io.NotSerializableException:java.util.PropertyResourceBundle
UT015008:加载开发模式持久会话失败:java.io.IOException:不支持的协议版本0
。这可能需要一些时间。。。