我正在使用Tapestry 5.3.3对应用程序进行群集。通过将HttpSession复制到集群中的所有节点来完成集群。通过序列化HttpSession来进行复制。当容器尝试序列化会话时,会引发NotSerializableException,因为org.apache.tapestry5.internal.SelectModelImpl不可序列化。 Tapestry通过ClusteredSessionImpl类将该类添加到会话中。所以它确实出现了Tapestry希望通过保存会话的相关信息来实现群集友好。有关如何解决此异常的任何想法?SelectModelImpl不可序列化阻止群集中的会话复制
0
A
回答
1
Tapestry用户邮件列表提供了一些很好的建议。显然,应该避免将SelectModel保存到会话中。这里有几个回应 -
是您的自定义代码是@Persist的SelectModel?如果是这样,你可以@改写基础集合,并在UI中每次构建SelectModel。你应该记住,HTTPSession的使用应该保持在最低限度,特别是在集群环境中。 HTTPSession的使用不能很好地扩展。 你真的需要在会话中坚持列表吗?你可以在会话中存储一个用户标识(或其他过滤参数),并在每次从服务需要时查找列表?如果您稍后发现查找代价昂贵,则可以查看服务级别的缓存。
你应该阅读: http://tapestry.apache.org/performance-and-clustering.html
不要@Persist或@SessionState SelectModel。这是一个坏主意。正如兰斯所说,如果你真的需要坚持它,坚持一个List来创建SelectModel,而不是SelectModel本身。
相关问题
- 1. 会话复制和集群在tomcat中?
- 2. 无法序列化群集中的会话
- 3. 会话复制GlassFish中不工作的多节点集群
- 4. 是否可以在tomcat中进行会话复制,而不会使会话属性可序列化?
- 5. 从IntelliJ IDE本地运行时阻止Tomcat序列化会话
- 6. 我如何管理weblogic集群中的会话复制
- 7. jsTree copy_modifier:false - 不会阻止节点复制!
- 8. Dropwizard会话群集
- 9. 带有会话复制的tomcat集群中的jsf应用程序
- 10. Coldfusion多服务器集群会话复制 - 在sessionscope中的阵列
- 11. 的Tomcat 6集群 - 验证会话复制
- 12. 是tomcat集群会话复制的唯一方式吗?
- 13. Nuxeo的集群 - 负载平衡器 - 会话复制失败
- 14. 序列化/反序列化“NHibernate会话”,懒化官方化错误(“StateServer模式”用于集群)
- 15. 复制不可序列化(COM)对象
- 16. 集群VS复制
- 17. ElasticSearch群集复制
- 18. Jboss集群中的Java会话
- 19. WebSphere群集中的会话超时
- 20. Tomcat集群中的会话标识
- 21. 阻止bot使用会话
- 22. Boost序列化 - 序列化不可复制但可移动的对象?
- 23. 在Vaadin处理不可序列化的Guava EventBus与会话序列化
- 24. websocket会话示例不集群..春季会话1.2.2
- 25. 如何阻止复制和粘贴阻止程序?
- 26. 使用JBoss EAP 6在非集群环境中进行Http会话复制
- 27. 会话状态序列化
- 28. 会话群集Tomcat中的Grails应用程序
- 29. C#阻止类从序列化
- 30. MariaDB Galera群集中的异步复制