Jetty のセッション永続性を機能させようとしています。実際にはセッションをディスクに書き込んでいますが、アプリケーションがセッションを読み取る機会を得るまでにセッション データがすべて消去されているため、セッションを読み戻していないようです。
次のように構成しています。
HashSessionManager sessionManager = new HashSessionManager();
sessionManager.setStoreDirectory(new File("sessions"));
// If I don't put in this next line, it seems like it "never" saves sessions to disk.
// Or at least I don't have the patience to wait however long it must take to do so.
sessionManager.setSavePeriod(5);//seconds
// Supposedly if you don't turn this on it can cause problems for some of the things
// Wicket puts in the session because Jetty would otherwise initialise the objects in
// the session before Wicket itself initialises.
sessionManager.setLazyLoad(true);
// ...
servletHandler.setSessionHandler(new SessionHandler(sessionManager));
ドキュメントには、遅延読み込みを有効にすることによって上記のコードで既にステップオーバーしたものを除いて、明らかな落とし穴については言及されていないようです。しかし、そのクラスには他にも多くのセッションがあり、それらのほとんどすべてが Javadoc で文書化されていないため、ソースコードを掘り下げて潜在的なバグを見つける以外に、ここからどこに行くべきかを知るのは困難です...