開発の変更を開始するときに追跡したいセッションのサイズを決定しようとしています。私のアプリケーションは、セッション サイズを取得しようとする場合を除いて、シリアライゼーション エラーなしで正常に動作します。
Wicket 1.4 では問題なかったと記憶していますが、今はできません。PageBase
コンストラクターでセッション サイズを取得すると、同じエラーが発生します。
誰かが私が間違っていることを見ることができますか?
Java コード
public class PageBase extends WebPage
{
private static final long serialVersionUID = 1L;
...
@Override
protected void onAfterRender()
{
super.onAfterRender();
Session ssnSession = Session.get();
long loSize = ssnSession.getSizeInBytes(); <-- Exception is raised here
...
}
...
}
スタックトレース
11-Jul-2012 19:30:11 org.apache.wicket.util.lang.WicketObjects$SerializingObjectSizeOfStrategy sizeOf
WARNING: Unable to determine object size: [...].MySession@d2f5f1
java.io.NotSerializableException: java.lang.Object
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.writeObject(Unknown Source)
at org.apache.wicket.util.lang.WicketObjects$SerializingObjectSizeOfStrategy.sizeOf(WicketObjects.java:124)
at org.apache.wicket.util.lang.WicketObjects.sizeof(WicketObjects.java:416)
at org.apache.wicket.Session.getSizeInBytes(Session.java:439)
at [...].PageBase.onAfterRender(PageBase.java:212)
at org.apache.wicket.Component.afterRender(Component.java:962)
at org.apache.wicket.Component.render(Component.java:2326)
at org.apache.wicket.Page.renderPage(Page.java:1035)
at org.apache.wicket.request.handler.render.WebPageRenderer.renderPage(WebPageRenderer.java:105)
...
私のソフトウェア環境
- Web フレームワーク: Wicket 1.5.7
- Java: 1.6.0_33; Java HotSpot(TM) クライアント VM 20.8-b03
- Web サーバー システム: Google App Engine for Java バージョン 1.7.0
- オペレーティング システム: Microsoft Windows XP Home Edition バージョン 2002 SP3 (x86 で動作するバージョン 5.1; Cp1252; en_GB)