2016-12-20 2 views
0

Grails mise à niveau de 1.3.7 à Grails 2.1.0. Grails exécuté-app exécuté. Pas d'erreursgrails webflow notserializableexception

L'appel à l'action de flux Web génère une erreur GrailsExceptionResolver. Indique qu'un objet de flux Web Grails n'est pas sérialisable. J'ai navigué toutes les classes pour m'assurer que tous ont des 'outils sérialisables'.

Erreur lors de l'identification de l'objet n'étant pas sérialisé, donc incapable d'identifier si un champ de classe doit être rendu transitoire pour être ignoré par l'exécution sérialisable.

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  '' 

Répondre

0

trouvé la résolution. Mon service de contrôleur appelait sessionFactory qui devait également être transitoire.

modification de code: def sessionFactory => sessionFactory transitoire. N'avait pas besoin de rendre transitoire toute variable de classe de domaine. résolu le problème.