【问题标题】:How to implement ObjectDecoder(ClassResolver) in Netty 3.2.7如何在 Netty 3.2.7 中实现 ObjectDecoder(ClassResolver)
【发布时间】:2014-04-24 01:28:23
【问题描述】:

在netty 3.2.5版本中的方法

public ChannelPipeline getPipeline() throws Exception { ... }

有一个解码器定义如下:

pipeline.addLast("decoder", new ObjectDecoder());

我已升级到 Netty 版本 3.2.7,其中 ObjectDecoder() 已弃用,并且它 现在需要ClassResolver。 有没有人有如何实现new ObjectDecoder(ClassResolver) 的代码示例 在 3.2.7 版本的getPipeline() 方法中?

【问题讨论】:

    标签: netty


    【解决方案1】:

    这是关于 Netty ClassResolver 的文档。

    http://netty.io/docs/stable/api/org/jboss/netty/handler/codec/serialization/ClassResolvers.html

    选择最符合您要求的类解析器。

    我想你也许可以这样做:

    new ObjectDecoder(ClassResolvers.weakCachingConcurrentResolver(null))
    

    【讨论】:

    • Veebs 感谢这个有效的解决方案。我现在有一个例外(与此解决方案无关)。当客户端向服务器发送消息时发生异常。我已经发布了这个例外的第一部分。有谁知道如何解决这个问题。 java.io.InvalidClassException:无法在 java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496) 处的 java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1567) 处读取类描述符
    • 您好,此链接可能会有所帮助:markmail.org/message/4ftws33dxehbzbwd。尝试指定一个 ClassLoader。如果您仍有问题,您可能希望将此问题标记为已回答并打开另一个问题。谢谢。
    • @Veebs:我在代码中看到它,但在 API (javadocs) 中没有看到...这到底是什么意思?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-06
    • 2012-09-15
    • 2016-01-01
    • 1970-01-01
    • 2012-02-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多