2011-12-28 69 views
4

實施ObjectDecoder(ClassResolver)在網狀版本3.2.5中方法如何用的Netty 3.2.7

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

已解碼器定義如下:

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

我已經升級到版本的Netty 3.2.7其中ObjectDecoder()已棄用,而 現在需要ClassResolver。 有沒有人有一個代碼示例如何在版本3.2.7的getPipeline()方法中實現new ObjectDecoder(ClassResolver)

回答

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:失敗在java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1567) \t在java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496) – Ray 2011-12-29 00:37:38

+0

嗨,這個鏈接來閱讀類描述 \t可能有幫助:http://markmail.org/message/4ftws33dxehbzbwd。嘗試指定一個ClassLoader。如果您仍有問題,您可能需要將此問題標記爲已回答並打開另一個問題。謝謝。 – Veebs 2011-12-29 04:35:29

+0

@Veebs:我在代碼中看到它,但沒有在API(javadocs)中看到它......這到底是什麼意思? – 2012-01-23 03:53:05