我想要做的是序列化一個類 實現一個命令模式,以便我可以稍後運行它。在世界上最好的 ,我想序列化一個匿名類(我 意識到這個問題)CGLib和序列號
是什麼使得它有點複雜的是,我在彈簧environement和 匿名我希望序列化的類被定義在一個類中,該類將由CGLib代理 。
我的初步嘗試:
public interface CallLater implements Serializeable {
public run();
}
@Service
public class TestService implements Serializeable {
public doSomethingMore() { /* Code */ }
public void doSomething() {
CallLater job = new CallLater() {
private static final long serialVersionUID = 4415017504667122645L;
@Override
public void run() {
doSomethingMore();
}
}
storeJob(job);
}
}
E.g的storeJob會序列化對象並將其存儲供以後,它的 這部分失敗。我沒有包括這個代碼,但是隻是 ObjectOutputStream調用
我知道整個TestService類需要序列化。問題是 它包裹扔了一個CGLib代理,並且此代理不實現可序列化 (我的猜測是,這個不能序列化)。
任何幫助,高度讚賞。
堆棧跟蹤將會有幫助 – skaffman 2010-12-15 19:25:20
CGLib代理是TestService的一個子類,因此實現了Serializable,不是嗎?也許它通過實現writeObject方法來阻止序列化? – 2010-12-15 22:07:05
@Christian:我的猜測是'TestService'對某個地方有一些不可序列化的引用。 – skaffman 2010-12-15 23:17:37