2012-02-21 12 views
0

memcacheクライアントを取得しようとすると、以下の例外が発生します。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

+0

完全なスタックトレースを投稿できますか? DataListとは何ですか?あなたはその関連コードを投稿することができます – Sean

+0

DataListは私自身のオブジェクトであり、memcacheはうまくいきます。 getメソッドを呼び出すと、IOExceptionがスローされます。 – Vaandu

答えて

0

MemCached.ObjectTransCoderのデコード方法は、java.io.ObjectInputStreamに依存して、キャッシュされたJavaオブジェクトをキャッシュからデシリアライズします。

まず、DataListオブジェクトがシリアライズ可能であることを確認する必要があります。つまり、java.io.Serializableインターフェイスを実装しています。また、そのクラスレベルの属性はすべて、プリミティブ型または直列化可能なオブジェクトです。

また、hereと記載されているコンポーネントコードを見て、デコードメソッドは、ここで起こっているようなクラス名を使用してClassExpcetion内でClassNotFoundExceptionがラップされるように実装されています。

したがって、このエラーが発生しているプロセスがクラスパスに含まれているかどうか(-cp引数を使用するかどうかなど)、クラス名が公開されているかどうかを確認する必要がありますエラーは完全にクラスの完全修飾名に一致します。

関連する問題