Недавно я интегрировал простое приложение Grails с плагином для поиска. Я обнаружил, что плагин Searchable не работает с библиотекой Hibernate 4.Grails 2.4 + Hibernate 4 + Searchable plugin = ClassNotFoundException: org.hibernate.impl.SessionFactoryImpl
Здесь вы можете найти пример приложение, которое содержит только чистый Grails 2.4 приложения только с Searchable плагина добавил - https://github.com/wololock/grails-searchable-example
Когда я запускаю это приложение с:
runtime ":hibernate4:4.3.5.5"
зависимости, это обыкновением начинаться и броски исключение:
ClassNotFoundException: org.hibernate.impl.SessionFactoryImpl
То, что я нашел уже в том, что в Hibernate4 SessionFactoryImpl был перенесен на org.hibernate.inte rnal пакет и, похоже, Compass выглядит для этого класса в старом месте:
2014-10-11 19:41:58,142 [localhost-startStop-1] ERROR context.GrailsContextLoaderListener - Error initializing the application: org/hibernate/impl/SessionFactoryImpl
Message: org/hibernate/impl/SessionFactoryImpl
Line | Method
->> 95 | injectLifecycle in org.compass.gps.device.hibernate.lifecycle.DefaultHibernateEntityLifecycleInjector
Переключение обратно в:
runtime ":hibernate:3.6.10.17"
и меняющегося
cache.region.factory_class = 'net.sf.ehcache.hibernate.EhCacheRegionFactory'
в DataSource.groovy решает проблема.
Мой вопрос: Есть ли какое-либо обходное решение для использования плагина Searchable с Hibernate 4 или нам нужно подождать или исправить проблему в исходном коде Compass/Searchable? Как вы справились с этой проблемой в своем приложении Grails? Я буду благодарен за ваши советы.
это то, что кровопролитные ТРЕЩИНЫ меня с Grails ... все эти фантастические плагины, которые никогда не работают с последними версиями Grails, так расстраивает приходится тратить 99% время поиска исправлений и обходных решений –