Работает ли плагин Searchable с Grails 2.0.0?(Я утверждаю, нет) - PullRequest
0 голосов
/ 14 февраля 2012

Когда я обновляюсь до проекта Grails 2.0 (с новой установкой плагина с возможностью поиска), я получаю исключение приведения класса Hibernate. Кто-нибудь еще получает эту проблему?

Ответы [ 5 ]

2 голосов
/ 25 мая 2012

http://grails.org/ использует плагин Searchable и работает с Grails 2.0.3. С какой проблемой вы сталкиваетесь?

1 голос
/ 09 октября 2012

При переносе моего приложения из 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
1 голос
/ 14 февраля 2012

Доступен для поиска на основе Компас , который переписывается как ElasticSearch .

Плагин ElasticSearch работает с Grails 2.0.

Для получения дополнительной информации см. Будущее Compass & ElasticSearch .

0 голосов
/ 18 ноября 2014

Это происходит потому, что при обновлении до версии Grails, использующей Hibernate 4.X. Это происходит потому, что между Hiberate 3.x и 4.x произошло несколько изменений имени пакета и класса, поэтому код, работающий с Hibernate 3.x, не будет работать с 4.x, за исключением редких случаев. Помимо изменения имени, произошли большие внутренние изменения в том, как все работает, поэтому компилируемый код не обязательно будет выполняться. Вариант приложения № 1 - перейти на Hibernate 3.x. Параметры конфигурации для этого включены и закомментированы (BuildConfig.groovy, DataSource.groovy), так что это очень быстрый вариант. Очевидно, что это не вариант, если вы зависите от функции, добавленной в 4.x, и это просто откладывает реальную проблему до тех пор, пока вам не придется обновить Hibernate.

0 голосов
/ 27 ноября 2012

Да, я тоже использовал searchable на grails 1.3.7, 2.0.3 и теперь использую на 2.1.1

Все, что мне нужно сделать, - это обновить плагин с возможностью поиска до последнего. Хотя я должен был сделать некоторые изменения в коде, но все было упомянуто в документации плагина

ссылка на документацию

Следите за импортом в контроллерах. Как я думаю, путь к классам был изменен. И это было единственное изменение, которое я сделал.

...