GlassFish 4 或 Tyrus 中的错误:每个 ByteBuffer 调用 Decoder#willDecode 两次?

Posted

技术标签:

【中文标题】GlassFish 4 或 Tyrus 中的错误:每个 ByteBuffer 调用 Decoder#willDecode 两次?【英文标题】:Bug in GlassFish 4 or Tyrus: Decoder#willDecode is called twice for each ByteBuffer? 【发布时间】:2013-06-16 09:44:38 【问题描述】:

我编写了使用 WebSockets 的最简单的应用程序。我的后端是 GlassFish 4 build 89,我的前端是一个 JavaFX 2.2 应用程序客户端,它使用 Tyrus 1.0 RC3,这是用于 WebSockets 的 Java API 的参考实现。 GlassFish 也使用 Tyrus,尽管我一直懒得去查找 GlassFish build 89 中包含的确切版本。

我对 WebSocket API 的测试来回发送了一个java.util.Date,仅此而已。好吧,应该添加二进制对象。所以我写了自己的Decoder 来实现Decoder.Binary<Date>。像往常一样,当我进入新的知识领域时,我喜欢记录每个方法调用。当我查看控制台时,我突然发现我的Deocer.Binary<Date>#willDecode(ByteBuffer) 方法被同一线程连续调用了两次!如果这真的是故意的,那么这种模式的用例是什么,增加了什么价值?但我认为这一定是一个错误!我试图在一些 GlassFish JIRA 网站上提交错误/问题,但我没有在任何地方找到该按钮。

【问题讨论】:

【参考方案1】:

不是违反规范的错误(“willDecode”调用计数没有限制),但我同意我们应该调查一下。

可以在 Tyrusjira 上跟踪进度,请参阅 TYRUS-210。

谢谢!

【讨论】:

以上是关于GlassFish 4 或 Tyrus 中的错误:每个 ByteBuffer 调用 Decoder#willDecode 两次?的主要内容,如果未能解决你的问题,请参考以下文章

无法加载容器提供程序类:org.glassfish.tyrus.container.grizzly.GrizzlyEngine

tyrus websocket ssl 握手失败

无法将传入缓冲区大小设置为 Tyrus 客户端

收到“未收到握手响应”。关闭 websocket 后

在Glassfish 5.0中部署ADF WEbapp时出错

我的 Websocket 需要永远连接