【发布时间】:2016-07-08 07:30:12
【问题描述】:
我有一个实现 Breadcrumb 系统的 Grails 3 应用程序 (3.1.1)。我基于 this plugin 的早期版本的 Grails。
它在本地运行良好(使用 Grails 命令行命令 run-app),但是,当我在 Tomcat 7 上构建和运行时,出现以下异常:
Jul 08, 2016 5:10:34 PM org.apache.catalina.ha.session.DeltaManager requestCompleted
SEVERE: Unable to serialize delta request for sessionid [6605EAC9C04DF7E2512493CABDFB1AD2]
java.io.NotSerializableException: au.packagename.BreadCrumbService
上述命名服务的范围设置为session,并被指定为代理。我什至添加了 Serializable 实现,但这似乎没有帮助。
class BreadCrumbService implements Serializable {
static transactional = false
static scope = 'session'
static proxy = true
}
我有一个Interceptor,它使用服务将当前控制器和操作作为Crumb 对象写入会话。我已将Serializable 实现添加到写入会话的Crumb 和BreadCrumbType 枚举(在控制器注释中使用)。
有谁能告诉我为什么会发生这种情况(我理解 Serializable 的概念)以及我该如何解决它?
【问题讨论】:
-
您确定 BreadCrumbService 的所有成员都是瞬态的或可序列化的吗?
标签: session grails serialization