Wicket 无法使用会话确定会话大小。getSizeInBytes()

Wicket 无法使用会话确定会话大小。getSizeInBytes(),wicket,Wicket,我试图确定会话的大小,在开始进行开发更改时,我希望跟踪会话的大小。我的应用程序正常运行,没有序列化错误-除非我尝试获取会话大小 在Wicket 1.4中,我记得我没有问题,但现在我做不到。如果在我的PageBase构造函数中获取会话大小,则会出现相同的错误 有人能看出我做错了什么吗 Java代码 我的软件环境 Web框架:Wicket 1.5.7 Java:1.6.0!;Java热点(TM)客户端VM 20.8-b03 Web服务器系统:Google App Engine for Java 1

我试图确定会话的大小,在开始进行开发更改时,我希望跟踪会话的大小。我的应用程序正常运行,没有序列化错误-除非我尝试获取会话大小

在Wicket 1.4中,我记得我没有问题,但现在我做不到。如果在我的
PageBase
构造函数中获取会话大小,则会出现相同的错误

有人能看出我做错了什么吗

Java代码 我的软件环境
  • Web框架:Wicket 1.5.7
  • Java:1.6.0!;Java热点(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)

我已使用

dev_appserver.cmd --jvm_flag=-Dsun.io.serialization.extendedDebugInfo=true
突出显示有问题的数据成员。在我的
WebSession
实例中,我使用了

private final Object m_objLockItemPaidStatus = new Object();
同步的
块中锁定处理。我已将此更改为使用的实例

/**
 * This class is the simplest possible class which can be used as an object
 * to lock processing in a <code>synchronized</code> block
 * and which can also be serialised.
 * (This class extends <code>java.lang.Object</code> solely to implement the
 * <code>java.io.Serializable</code> interface.)
 */
public static class LockObject extends Object implements Serializable
{
  private static final long serialVersionUID = 1L;

  public LockObject()
  {
    super();
  }
}
相反,为了确保我的
WebSession
实例可以序列化(这样我也可以使用
WebSession#getSizeInBytes()
找到它们的大致大小)

我感到奇怪的一件事是,既然我希望Wicket在我的Google App Engine for Java(GAE/J)环境中序列化我的
WebSession
实例,为什么还没有使用GAE/J开发web服务器来实现呢

private final Object m_objLockItemPaidStatus = new Object();
/**
 * This class is the simplest possible class which can be used as an object
 * to lock processing in a <code>synchronized</code> block
 * and which can also be serialised.
 * (This class extends <code>java.lang.Object</code> solely to implement the
 * <code>java.io.Serializable</code> interface.)
 */
public static class LockObject extends Object implements Serializable
{
  private static final long serialVersionUID = 1L;

  public LockObject()
  {
    super();
  }
}