2012-02-21 128 views
0

嘗試獲取memcache客戶端時,獲取下面的exceptone。Memcache get方法拋出IOException

Caused by: java.io.IOException: com.fet.myclass.webservice.data.DataList 
    at com.schooner.MemCached.ObjectTransCoder.decode(Unknown Source) 

請幫忙。謝謝。

編輯:

DataList是我自己的對象。是否有任何約束,像只有本機java對象可以被緩存,像那樣?

+1

@downvoter,請解釋一下。 – Vaandu 2012-02-21 13:24:33

+0

你可以發佈完整的堆棧跟蹤嗎?什麼是DataList?並可以發佈其相關代碼 – Sean 2012-02-21 14:01:53

+0

DataList是我自己的對象,並設置爲memcache工作正常。當調用get方法時,它會拋出IOException異常。 – Vaandu 2012-02-21 14:07:50

回答

0

MemCached.ObjectTransCoder解碼方法依賴於java.io.ObjectInputStream從緩存中反序列化緩存的Java對象。

所以,首先,你必須檢查你的DataList對象是否可序列化。即:它實現java.io.Serializable接口,並且它的所有類級別屬性本身都是原始類型或可序列化對象。

另外,查看列出的組件代碼here解碼方法的實現方式是ClassNotFoundException被封裝在IOExpcetion中,使用類名作爲它的消息,這似乎正在發生。所以,作爲第二點,你應該檢查你得到這個錯誤的過程,你的類是否包含在它的類路徑中(通過-cp參數,或者任何情況),以及如果類名暴露在該錯誤恰好與您的類完全限定名稱相匹配。

相關問題