我有一个具有复杂形式的Web应用程序:

  • 执行字段验证,
  • 将值转换为易于为下一页解析的输入格式(数组)。
  • 将用户重定向到下一页(数据通过URL传递)
  • 然后,下一页将加载数据以执行计算并显示结果。

  • 所有这些都在Wicket中无条件完成。我在考虑如何做到这一点。感觉不对。转换为数组并重定向“工作”,但必须有更好的方法。

    更新
    为什么表格是无状态的:
    有问题的Web应用程序与其他2个Web应用程序共享服务器。部署此应用程序的新版本后,我遇到了OutOfMemoryException。在将Tomcat Manager Application转换为无状态之前,当我检查Tomcat Manager Application时,通常会看到约150个或“ Activity 会话”。现在,表单/结果页面是无状态的,我看到了5个“ Activity 会话”。这减少了我的内存使用量。(我认为)。我仍然有一个doubt的疑问:https://stackoverflow.com/questions/16049219/how-to-handle-a-hibernate-bi-directional-mapping-for-a-set-properly

    建议:
    我开始怀疑是否应该删除“结果”页面安装点并将其转换为面板。这样,我可以将复杂的对象直接传递给它,并在整页刷新中交换面板。在无状态页面中甚至有可能吗?

    开机自检
    我也不相信检票口本身就支持POST重定向:How to use post method in wicket

    最佳答案

    您是否仔细查看了OutOfMemoryError?通常,当重新部署应用程序时,您会用完永久性空间,而不是用户内存。彼尔姆根空间泄漏非常普遍,很难消除。可能这与Wicket无关,而更多与仍在加载的类有关。您应该尝试使用Java 8(没有永久的版本)或Tomcat(和Wicket)的较新版本,因为通常在较新版本的框架和容器中解决了类加载器泄漏。

    另请参阅本文:Avoiding Apache Tomcat Out Of Memory Errors

    10-06 12:58