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 => transient sessionFactory. ドメインクラス変数を直接一時的にする必要はありませんでした。問題を修正しました。

于 2016-12-29T21:20:00.757 に答える