2

Grails Spring キャッシュ プラグインの代わりに、Spring 3.1 キャッシュ抽象化を使用する予定です。ローカルで実験しましたが、Spring el のような式を使用すると問題が発生しました

@Cacheable(value = 'dashboardCache', key = 'sessionStorageService.getUser()', condition = 'sessionStorageService.getUser() != null')
public List<BusinessDashboard> getUserDashboards(String serverName, SessionStorageService sessionStorageService) { ... }

統合テストケースを実行すると、次のエラーが発生します

EL1008E:(pos 0): Field or property 'sessionStorageService' cannot be found on object of type 'org.springframework.cache.interceptor.CacheExpressionRootObject'
org.springframework.expression.spel.SpelEvaluationException: EL1008E:(pos 0): Field or    property 'sessionStorageService' cannot be found on object of type 'org.springframework.cache.interceptor.CacheExpressionRootObject'

この動作は、デバッグ情報の欠落が原因であると想定しています-したがって、私の質問:

Grails アプリで Spring el 式を有効にすることはできますか? または、クラス ファイルにデバッグ シンボルを保持するように Grails に指示するコンパイル プロセスへのパラメーターはありますか?

(Grails 2.0.1 で実行しています)

4

1 に答える 1

4

'#sessionStorageService.getUser()'を試してください

于 2012-05-08T13:23:04.447 に答える