W mojej aplikacji używam słoika hibernacji-core-4.1.8 i chciałbym wziąć ehCache jako pamięć podręczną drugiego poziomu. Słoik, którego obecnie używam, to ehcache-core-2.5.0. Umieściłem go w folderze WebContetn/WEB-INF/lib i umieściłem go również w ścieżce klas.ehcache hibernacji 4
Moja hibernate.cfg.xml wygląda następująco:
<hibernate-configuration>
<session-factory>
....
<property name="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</property>
<property name="hibernate.cache.use_second_level_cache">true</property>
<property name="hibernate.cache.use_query_cache">true</property>
</session-factory>
</hibernate-configuration>
ehcache.xml który jest umieszczony w folderze JavaResources/src:
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="ehcache.xsd" updateCheck="true"
monitoring="autodetect" dynamicConfig="true">
<defaultCache
maxElementsInMemory="100000"
eternal="false"
timeToIdleSeconds="1000"
timeToLiveSeconds="1000"
overflowToDisk="false"
/>
</ehcache>
Uruchamiając moja aplikacja org klasy. hibernate.cache.ehcache.EhCacheRegionFactory nie zostanie znaleziony:
java.lang.ClassNotFoundException: Could not load requested class : org.hibernate.cache.ehcache.EhCacheRegionFactory
at org.hibernate.service.classloading.internal.ClassLoaderServiceImpl$1.findClass(ClassLoaderServiceImpl.java:99)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at org.hibernate.service.classloading.internal.ClassLoaderServiceImpl.classForName(ClassLoaderServiceImpl.java:138)
at org.hibernate.cfg.SettingsFactory.createRegionFactory(SettingsFactory.java:444)
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:275)
at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2283)
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2279)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1748)
at creator.controllers.MyFactory.<clinit>(MyFactory.java:18)
at creator.controllers.SchoolDAO.getList(SchoolDAO.java:98)
.....
działa prawidłowo po dodaniu swój dzban, jak również slf4-api-1.7.2 wydaje się wymagać (z http: // www.slf4j.org/download.html) do projektu :) dzięki! – chris
+1 głos za rozwiązanie mojego problemu. –
teraz działa również dla mnie –