2011-12-28 1 views
4

В Нетти версии 3.2.5 в методеКак реализовать ObjectDecoder (ClassResolver) в Netty 3.2.7

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

имеют декодер определяется следующим образом:

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

Я повышен до Нетти версии 3.2.7, который устарел ObjectDecoder(), и ему теперь требуется ClassResolver. Есть ли у кого-нибудь пример кода, как реализовать new ObjectDecoder(ClassResolver) в методе getPipeline() в версии 3.2.7?

ответ

1

Вот документация по Netty ClassResolver.

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

Выберите класс распознаватель, который наилучшим образом соответствует вашим требованиям.

Я думаю, что вы, возможно, в состоянии сделать что-то вроде этого:

new ObjectDecoder(ClassResolvers.weakCachingConcurrentResolver(null)) 
+0

Veebs спасибо за это решение, которое работает. У меня теперь есть исключение (которое не связано с этим решением). Исключение возникает, когда клиент отправляет сообщение на сервер. Я опубликовал первую часть этого исключения. Кто-нибудь знает, как это можно решить. java.io.InvalidClassException: не удалось прочитать класс дескриптора \t в java.io.ObjectInputStream.readNonProxyDesc (ObjectInputStream.java:1567) \t в java.io.ObjectInputStream.readClassDesc (ObjectInputStream.java:1496) – Ray

+0

Привет, ссылку может помочь: http://markmail.org/message/4ftws33dxehbzbwd. Попробуйте указать ClassLoader. Вы можете пометить этот вопрос как ответ и открыть другой вопрос, если у вас все еще есть проблемы. Благодарю. – Veebs

+0

@Veebs: Я вижу это в коде, но не в API (javadocs) ... Что именно это делает и означает? –

 Смежные вопросы

  • Нет связанных вопросов^_^