Grails 2.4 + Hibernate 4 + Searchable Plugin = ClassNotFoundException: org.hibernate.impl.SessionFactoryImpl

or kurzem habe ich eine einfache Grails-Anwendung in das Searchable-Plugin integriert. Ich habe festgestellt, dass das Searchable-Plugin nicht mit der Hibernate 4-Bibliothek funktioniert.

Hier finden Sie eine Beispielanwendung, die nur die saubere Grails 2.4-App mit nur hinzugefügtem durchsuchbarem Plugin enthält -https: //github.com/wololock/grails-searchable-exampl

Wenn ich diese App mit:

runtime ":hibernate4:4.3.5.5"

dependency, es startet nicht und löst eine Ausnahme aus:

ClassNotFoundException: org.hibernate.impl.SessionFactoryImpl

Was ich bereits gefunden habe, ist, dass in Hibernate4 SessionFactoryImpl in das org.hibernate.internal-Paket verschoben wurde und es so aussieht, als würde Compass nach dieser Klasse am alten Speicherort suchen:

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

Zurückschalten zum:

runtime ":hibernate:3.6.10.17"

und ändern

cache.region.factory_class = 'net.sf.ehcache.hibernate.EhCacheRegionFactory'

in der DataSource.groovy behebt das Problem.

Meine Frage ist Gibt es eine Problemumgehung für die Verwendung des Searchable-Plugins mit Hibernate 4 oder müssen wir warten oder das Problem im Compass / Searchable-Quellcode beheben? Wie sind Sie mit diesem Problem in Ihrer Grails-Anwendung umgegangen? Ich werde für Ihre Tipps dankbar sein.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage