【发布时间】:2014-05-20 20:25:18
【问题描述】:
我的 Web 应用程序与 wicket 存在问题。我正在使用检票口 6.14。我不能确切地说出问题是什么,但我可以描述问题。
我正在使用一个使用 hazelcast 的自写页面存储。这些页面存储在 wicket 默认 sessioncache 和 hazelcast 存储中。如果我重新启动我的网络服务器,页面将从 hazelcast 存储,因为我的网络服务器上的会话缓存中没有任何内容了。
我通过以下方式在我的网络应用程序上完成我的流程:
- 转到我的页面并填写我的表格
- 我更进一步,转到第 3 页
- 我重新启动了我的网络服务器,然后单击继续转到第 4 页。该页面是从 hazelcase 存储的,一切似乎都可以正常工作。
- 我填写了一些字段,然后单击继续到第 5 页
- 我填写了另一个表单并单击继续,“这里出现验证错误”
我假设如下,因为我通过我的应用程序进行了测试和调试。在我的网络服务器重新启动后,检票口将错误的页面存储在会话缓存中。在第 5 页,从 sessioncache 中存储了一个错误的页面,而预期的页面与我想要的不同。在我的应用程序的另一个位置,我收到“组件已从页面中删除”错误。为什么我认为 wicket 在 sessioncache 中存储了错误的页面?因为在我的 web 应用程序重新启动后,我的页面的 id 发生了变化。我通常有这样的网址:www.mysite.de/flow?1
1 是 pageid。通常我会在第一页获得像 www.mysite.de/flow?1 这样的网址。 www.mysite.de/flow?2 第二页等等。重新启动我的网络服务器后,我的 url 的 ID 没有改变,我认为此时页面被错误地存储到会话缓存中。
对不起,我这里没有代码。但是,如果有人可以描述页面存储和会话缓存在检票口中的工作方式,它将对我有很大帮助。
编辑
我测试了升技,似乎 pageId 没有进一步计算。 Session 类有一个名为 nextPageId() 的方法。调用此方法,但 pageId 相同。 url 中的 pageId 始终相同。出于任何原因,在我的网络服务器重新启动后,我的 Session 出现了问题。它不再计算页数了。
【问题讨论】: