0

Grails 从 1.3.7 升级到 Grails 2.1.0。Grails run-app 已执行。没有错误。

调用 webflow 操作会引发 GrailsExceptionResolver 错误。声明 grails webflow 对象不可序列化。我浏览了所有类以确保所有类都具有“可序列化的实现”。

错误未识别未序列化的对象,因此无法识别是否应将类字段设为瞬态以被可序列化运行时忽略。

Full Stacktrace:
2016-12-20 09:51:25,750 [http-bio-80-exec-1] DEBUG services.RpgService  - ************ 

| Error 2016-12-20 09:51:26,450 [http-bio-80-exec-1] ERROR errors.GrailsExceptionResolver  - NotSerializableException occurred when processing request: [GET] /…/…/order
org.codehaus.groovy.grails.commons.spring.GrailsWebApplicationContext. Stacktrace follows:
Message: Could not serialize flow execution; make sure all objects stored in flow or flash scope are serializable
   Line | Method
->> 384 | doFilterInternal in org.jsecurity.web.servlet.JsecurityFilter
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|   183 | doFilter         in org.jsecurity.web.servlet.OncePerRequestFilter
|   886 | runTask . . . .  in java.util.concurrent.ThreadPoolExecutor$Worker
|   908 | run              in     ''
^   662 | run . . . . . .  in java.lang.Thread
Caused by NotSerializableException: org.codehaus.groovy.grails.commons.spring.GrailsWebApplicationContext
->> 1164 | writeObject0     in java.io.ObjectOutputStream
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|   1518 | defaultWriteFields in     ''
|   1483 | writeSerialData  in     ''
|   1400 | writeOrdinaryObject in     ''
|   1158 | writeObject0 . . in     ''
|   1518 | defaultWriteFields in     ''
|   1483 | writeSerialData  in     ''
|   1400 | writeOrdinaryObject in     ''
|   1158 | writeObject0 . . in     ''
|   330 | writeObject      in     ''
|   1001 | writeObject . .  in java.util.HashMap
|   940 | invokeWriteObject in java.io.ObjectStreamClass
|   1469 | writeSerialData  in java.io.ObjectOutputStream
|   1400 | writeOrdinaryObject in     ''
|   1158 | writeObject0 . . in     ''
|   1518 | defaultWriteFields in     ''
4

1 回答 1

0

找到了解决方案。我的控制器服务正在调用 sessionFactory,它也需要是瞬态的。

代码更改:def sessionFactory => 瞬态 sessionFactory。不需要直接使任何域类变量瞬态。解决了这个问题。

于 2016-12-29T21:20:00.757 回答