0

プロジェクトを grails 2.0 にアップグレードすると (検索可能なプラグインを新規インストールして)、Hibernate クラスのキャスト例外が発生します。他の誰かがこの問題を抱えていますか?

4

5 に答える 5

2

http://grails.org/は Searchable プラグインを使用しており、Grails 2.0.3 で動作します。どのような問題が発生していますか?

于 2012-05-24T21:53:19.590 に答える
1

アプリを Grails 1.3.7 から 2.1.1 に移行すると、同様の問題が発生しました。Searchable プラグインを 0.5.5 から 0.6.4 に更新することで解決できました。

スタックトレースは次のようになります。

| Error 2012-10-05 19:02:18,691 [localhost-startStop-1] ERROR context.GrailsContextLoader  - Error executing bootstraps: org.codehaus.groovy.grails.orm.hibernate.SessionFactoryProxy cannot be cast to org.hibernate.impl.SessionFactoryImpl
Message: org.codehaus.groovy.grails.orm.hibernate.SessionFactoryProxy cannot be cast to org.hibernate.impl.SessionFactoryImpl
Line 
| Method 
->>  95 | injectLifecycle in org.compass.gps.device.hibernate.lifecycle.DefaultHibernateEntityLifecycleInjector
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
|    46 | injectLifecycle in org.compass.gps.device.hibernate.lifecycle.DefaultHibernateEntityCollectionLifecycleInjector
|   149 | doStart . . . . in org.compass.gps.device.hibernate.HibernateGpsDevice
|   125 | start           in org.compass.gps.device.AbstractGpsDevice
|    73 | start . . . . . in org.compass.gps.device.support.parallel.AbstractParallelGpsDevice
|   166 | start           in org.compass.gps.impl.AbstractCompassGps
|   144 | doCall . . . .  in SearchableGrailsPlugin$_closure3
|   303 | innerRun        in java.util.concurrent.FutureTask$Sync
|   138 | run . . . . . . in java.util.concurrent.FutureTask
|   886 | runTask         in java.util.concurrent.ThreadPoolExecutor$Worker
|   908 | run . . . . . . in     ''
^   680 | run             in java.lang.Thread
| Error 2012-10-05 19:02:18,715 [localhost-startStop-1] ERROR [localhost].[/myApp]  - Exception sending context initialized event to listener instance of class org.codehaus.groovy.grails.web.context.GrailsContextLoaderListener
Message: Error executing bootstraps; nested exception is java.lang.ClassCastException: org.codehaus.groovy.grails.orm.hibernate.SessionFactoryProxy cannot be cast to org.hibernate.impl.SessionFactoryImpl
Line | Method
->> 303 | innerRun in java.util.concurrent.FutureTask$Sync
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
|   138 | run      in java.util.concurrent.FutureTask
|   886 | runTask  in java.util.concurrent.ThreadPoolExecutor$Worker
|   908 | run      in     ''
^   680 | run . .  in java.lang.Thread

Caused by ClassCastException: org.codehaus.groovy.grails.orm.hibernate.SessionFactoryProxy cannot be cast to org.hibernate.impl.SessionFactoryImpl
->>  95 | injectLifecycle in org.compass.gps.device.hibernate.lifecycle.DefaultHibernateEntityLifecycleInjector
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
|    46 | injectLifecycle in org.compass.gps.device.hibernate.lifecycle.DefaultHibernateEntityCollectionLifecycleInjector
|   149 | doStart  in org.compass.gps.device.hibernate.HibernateGpsDevice
|   125 | start    in org.compass.gps.device.AbstractGpsDevice
|    73 | start .  in org.compass.gps.device.support.parallel.AbstractParallelGpsDevice
|   166 | start    in org.compass.gps.impl.AbstractCompassGps
|   144 | doCall . in SearchableGrailsPlugin$_closure3
|   303 | innerRun in java.util.concurrent.FutureTask$Sync
|   138 | run . .  in java.util.concurrent.FutureTask
|   886 | runTask  in java.util.concurrent.ThreadPoolExecutor$Worker
|   908 | run . .  in     ''
^   680 | run      in java.lang.Thread
于 2012-10-09T11:15:41.257 に答える
1

Searchable は、 ElasticSearchとして書き直されているCompassに基づいています。

ElasticSearchプラグインはGrails 2.0 で動作します。

詳細については、 Compass と ElasticSearch の未来 を参照してください。

于 2012-02-13T20:50:20.570 に答える
0

はい、私もgrails 1.3.7、2.0.3で検索可能で、現在は2.1.1で使用しています

私がしなければならないのは、検索可能なプラグインを最新のものにアップグレードすることだけでした。コードを微調整する必要がありましたが、すべてプラグインのドキュメントに記載されていました

ドキュメントへのリンク

コントローラーのインポートに注意してください。クラスパスが変更されていると思います。そして、これが私が行った唯一の変更でした。

于 2012-11-27T11:23:48.307 に答える