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