You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@karaf.apache.org by Jason Reilly <jd...@renci.org> on 2017/05/03 18:01:19 UTC

hibernate caching

Hi all,

I tried to add caching to my persistence layer.  I added the following 
to my persistence.xml:


       <property name="hibernate.cache.region.factory_class" value="org.hibernate.cache.jcache.JCacheRegionFactory" />

       <property name="hibernate.javax.cache.provider" value="org.ehcache.jsr107.EhcacheCachingProvider" />

       <property name="hibernate.cache.use_second_level_cache" value="true" />

       <property name="hibernate.cache.use_query_cache" value="true" />


I added the necessary dependencies (test cases all run great), but this 
configuration doesn't seem to deploy nicely to Karaf (4.1.1).  The 
exception thrown is the following:


2017-05-03 13:03:30,645 | ERROR | atures.logging]) | configadmin                      | 5 - org.apache.felix.configadmin - 1.8.14 | [org.osgi.service.cm.ManagedService, id=242, bundle=75/mvn:org.apache.aries.jpa/org.apache.aries.jpa.container/2.6.0]: Unexpected problem updating configuration org.apache.aries.jpa.canvas

org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.cache.spi.RegionFactory]

     at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:271) [249:org.hibernate.core:5.2.8.Final]

     at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:233) [249:org.hibernate.core:5.2.8.Final]

     at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:210) [249:org.hibernate.core:5.2.8.Final]

     at org.hibernate.boot.internal.MetadataBuilderImpl$MetadataBuildingOptionsImpl.<init>(MetadataBuilderImpl.java:663) [249:org.hibernate.core:5.2.8.Final]

     at org.hibernate.boot.internal.MetadataBuilderImpl.<init>(MetadataBuilderImpl.java:127) [249:org.hibernate.core:5.2.8.Final]

     at org.hibernate.boot.MetadataSources.getMetadataBuilder(MetadataSources.java:135) [249:org.hibernate.core:5.2.8.Final]

     at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.<init>(EntityManagerFactoryBuilderImpl.java:214) [249:org.hibernate.core:5.2.8.Final]

     at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.<init>(EntityManagerFactoryBuilderImpl.java:177) [249:org.hibernate.core:5.2.8.Final]

     at org.hibernate.jpa.boot.spi.Bootstrap.getEntityManagerFactoryBuilder(Bootstrap.java:83) [249:org.hibernate.core:5.2.8.Final]

     at org.hibernate.jpa.boot.spi.Bootstrap.getEntityManagerFactoryBuilder(Bootstrap.java:103) [249:org.hibernate.core:5.2.8.Final]

     at org.hibernate.osgi.OsgiPersistenceProvider.createContainerEntityManagerFactory(OsgiPersistenceProvider.java:95) [253:org.hibernate.osgi:5.2.8.Final]

     at org.apache.aries.jpa.container.impl.ManagedEMF.createAndPublishEMF(ManagedEMF.java:129) [75:org.apache.aries.jpa.container:2.6.0]

     at org.apache.aries.jpa.container.impl.ManagedEMF.updated(ManagedEMF.java:125) [75:org.apache.aries.jpa.container:2.6.0]

     at org.apache.felix.cm.impl.helper.ManagedServiceTracker.updated(ManagedServiceTracker.java:189) [5:org.apache.felix.configadmin:1.8.14]

     at org.apache.felix.cm.impl.helper.ManagedServiceTracker.updateService(ManagedServiceTracker.java:152) [5:org.apache.felix.configadmin:1.8.14]

     at org.apache.felix.cm.impl.helper.ManagedServiceTracker.provideConfiguration(ManagedServiceTracker.java:85) [5:org.apache.felix.configadmin:1.8.14]

     at org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceUpdate.provide(ConfigurationManager.java:1463) [5:org.apache.felix.configadmin:1.8.14]

     at org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceUpdate.run(ConfigurationManager.java:1419) [5:org.apache.felix.configadmin:1.8.14]

     at org.apache.felix.cm.impl.UpdateThread.run0(UpdateThread.java:141) [5:org.apache.felix.configadmin:1.8.14]

     at org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:109) [5:org.apache.felix.configadmin:1.8.14]

     at java.lang.Thread.run(Thread.java:745) [?:?]

Caused by: org.hibernate.boot.registry.selector.spi.StrategySelectionException: Unable to resolve name [org.hibernate.cache.jcache.JCacheRegionFactory] as strategy [org.hibernate.cache.spi.RegionFactory]

     at org.hibernate.boot.registry.selector.internal.StrategySelectorImpl.selectStrategyImplementor(StrategySelectorImpl.java:126) ~[?:?]

     at org.hibernate.boot.registry.selector.internal.StrategySelectorImpl.resolveStrategy(StrategySelectorImpl.java:194) ~[?:?]

     at org.hibernate.boot.registry.selector.internal.StrategySelectorImpl.resolveStrategy(StrategySelectorImpl.java:161) ~[?:?]

     at org.hibernate.cache.internal.RegionFactoryInitiator.initiateService(RegionFactoryInitiator.java:67) ~[?:?]

     at org.hibernate.cache.internal.RegionFactoryInitiator.initiateService(RegionFactoryInitiator.java:28) ~[?:?]

     at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:88) ~[?:?]

     at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:259) ~[?:?]


Checking for exports:


karaf@root()> exports | grep org.hibernate.cache.spi

org.hibernate.cache.spi.access                                                                         │ 5.2.8.Final   │ 249 │ org.hibernate.core

org.hibernate.cache.spi.entry                                                                          │ 5.2.8.Final   │ 249 │ org.hibernate.core

org.hibernate.cache.spi                                                                                │ 5.2.8.Final   │ 249 │ org.hibernate.core

karaf@root()> exports | grep org.hibernate.cache.jcache

org.hibernate.cache.jcache.access                                                                      │ 5.2.8.Final   │ 252 │ org.hibernate.jcache

org.hibernate.cache.jcache.time                                                                        │ 5.2.8.Final   │ 252 │ org.hibernate.jcache

org.hibernate.cache.jcache                                                                             │ 5.2.8.Final   │ 252 │ org.hibernate.jcache

karaf@root()> exports | grep org.ehcache.jsr107

org.ehcache.jsr107.config                                                                              │ 0.0.0         │ 246 │ org.ehcache.ehcache

org.ehcache.jsr107                                                                                     │ 0.0.0         │ 246 │ org.ehcache.ehcache


Anyone get Hibernate (5.2.8.Final) working in Karaf with caching?  
Suggestions?


Thanks,

Jason





Re: hibernate caching

Posted by Jason Reilly <jd...@renci.org>.
Another quick update...

I removed the jsr107 ehcache option & tried out the hibernate ehcache 
factory.  So, the persistence.xml file has the following:


<property name="hibernate.cache.region.factory_class" value="org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory" />


And the dao-api/pom.xml had the following Import-Package:

<Import-Package>org.hibernate.proxy,org.hibernate.cache.ehcache,javassist.util.proxy,*</Import-Package>


This works, but the log has a bunch of warnings, "Could not find a 
specific ehcache configuration for cache named".  I can live with the 
warnings for now.


On 05/03/2017 03:32 PM, Jason Reilly wrote:
> Quick update....
>
> Adding the following to my dao-api/pom.xml file:
>
> <Import-Package>org.hibernate.proxy,org.ehcache.jsr107,org.hibernate.cache.jcache,javassist.util.proxy,*</Import-Package> 
>
>
>
> I get the following at startup:
>
>
> 2017-05-03 15:21:08,067 | ERROR | pache.cxf.osgi]) | 
> configadmin                      | 5 - org.apache.felix.configadmin - 
> 1.8.14 | [org.osgi.service.cm.ManagedService, id=236, 
> bundle=73/mvn:org.apache.aries.jpa/org.apache.aries.jpa.container/2.6.1]: 
> Unexpected problem updating configuration org.apache.aries.jpa.canvas
>
> javax.persistence.PersistenceException: [PersistenceUnit: canvas] 
> Unable to build Hibernate SessionFactory
>
>     at 
> org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.persistenceException(EntityManagerFactoryBuilderImpl.java:967) 
> [246:org.hibernate.core:5.2.10.Final]
>
>     at 
> org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:892) 
> [246:org.hibernate.core:5.2.10.Final]
>
>     at 
> org.hibernate.osgi.OsgiPersistenceProvider.createContainerEntityManagerFactory(OsgiPersistenceProvider.java:96) 
> [251:org.hibernate.osgi:5.2.10.Final]
>
>     at 
> org.apache.aries.jpa.container.impl.ManagedEMF.createAndPublishEMF(ManagedEMF.java:129) 
> [73:org.apache.aries.jpa.container:2.6.1]
>
>     at 
> org.apache.aries.jpa.container.impl.ManagedEMF.updated(ManagedEMF.java:125) 
> [73:org.apache.aries.jpa.container:2.6.1]
>
>     at 
> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updated(ManagedServiceTracker.java:189) 
> [5:org.apache.felix.configadmin:1.8.14]
>
>     at 
> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updateService(ManagedServiceTracker.java:152) 
> [5:org.apache.felix.configadmin:1.8.14]
>
>     at 
> org.apache.felix.cm.impl.helper.ManagedServiceTracker.provideConfiguration(ManagedServiceTracker.java:85) 
> [5:org.apache.felix.configadmin:1.8.14]
>
>     at 
> org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceUpdate.provide(ConfigurationManager.java:1463) 
> [5:org.apache.felix.configadmin:1.8.14]
>
>     at 
> org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceUpdate.run(ConfigurationManager.java:1419) 
> [5:org.apache.felix.configadmin:1.8.14]
>
>     at 
> org.apache.felix.cm.impl.UpdateThread.run0(UpdateThread.java:141) 
> [5:org.apache.felix.configadmin:1.8.14]
>
>     at 
> org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:109) 
> [5:org.apache.felix.configadmin:1.8.14]
>
>     at java.lang.Thread.run(Thread.java:745) [?:?]
>
> Caused by: org.hibernate.service.spi.ServiceException: Unable to 
> create requested service [org.hibernate.engine.spi.CacheImplementor]
>
>     at 
> org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:271) 
> ~[?:?]
>
>     at 
> org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:233) 
> ~[?:?]
>
>     at 
> org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:210) 
> ~[?:?]
>
>     at 
> org.hibernate.service.internal.SessionFactoryServiceRegistryImpl.getService(SessionFactoryServiceRegistryImpl.java:77) 
> ~[?:?]
>
>     at 
> org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:240) 
> ~[?:?]
>
>     at 
> org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:452) 
> ~[?:?]
>
>     at 
> org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:889) 
> ~[?:?]
>
>     ... 11 more
>
> Caused by: javax.cache.CacheException: Failed to load the 
> CachingProvider [org.ehcache.jsr107.EhcacheCachingProvider]
>
>     at 
> javax.cache.Caching$CachingProviderRegistry.loadCachingProvider(Caching.java:169) 
> ~[?:?]
>
>     at 
> javax.cache.Caching$CachingProviderRegistry.getCachingProvider(Caching.java:184) 
> ~[?:?]
>
>     at 
> javax.cache.Caching$CachingProviderRegistry.getCachingProvider(Caching.java:156) 
> ~[?:?]
>
>     at javax.cache.Caching.getCachingProvider(Caching.java:66) ~[?:?]
>
>     at 
> org.hibernate.cache.jcache.JCacheRegionFactory.getCachingProvider(JCacheRegionFactory.java:157) 
> ~[?:?]
>
>     at 
> org.hibernate.cache.jcache.JCacheRegionFactory.getCacheManager(JCacheRegionFactory.java:166) 
> ~[?:?]
>
>     at 
> org.hibernate.cache.jcache.JCacheRegionFactory.start(JCacheRegionFactory.java:68) 
> ~[?:?]
>
>     at 
> org.hibernate.cache.spi.RegionFactory.start(RegionFactory.java:63) ~[?:?]
>
>     at org.hibernate.internal.CacheImpl.<init>(CacheImpl.java:71) ~[?:?]
>
>     at 
> org.hibernate.engine.spi.CacheInitiator.initiateService(CacheInitiator.java:28) 
> ~[?:?]
>
>     at 
> org.hibernate.engine.spi.CacheInitiator.initiateService(CacheInitiator.java:20) 
> ~[?:?]
>
>     at 
> org.hibernate.service.internal.SessionFactoryServiceRegistryImpl.initiateService(SessionFactoryServiceRegistryImpl.java:58) 
> ~[?:?]
>
>     at 
> org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:259) 
> ~[?:?]
>
>     at 
> org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:233) 
> ~[?:?]
>
>     at 
> org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:210) 
> ~[?:?]
>
>     at 
> org.hibernate.service.internal.SessionFactoryServiceRegistryImpl.getService(SessionFactoryServiceRegistryImpl.java:77) 
> ~[?:?]
>
>     at 
> org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:240) 
> ~[?:?]
>
>     at 
> org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:452) 
> ~[?:?]
>
>     at 
> org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:889) 
> ~[?:?]
>
>     ... 11 more
>
> Caused by: java.lang.ClassNotFoundException: 
> org.ehcache.jsr107.EhcacheCachingProvider
>
>     at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[?:?]
>
>     at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[?:?]
>
>     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 
> ~[?:?]
>
>     at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:?]
>
>     at 
> javax.cache.Caching$CachingProviderRegistry.loadCachingProvider(Caching.java:162) 
> ~[?:?]
>
>     at 
> javax.cache.Caching$CachingProviderRegistry.getCachingProvider(Caching.java:184) 
> ~[?:?]
>
>     at 
> javax.cache.Caching$CachingProviderRegistry.getCachingProvider(Caching.java:156) 
> ~[?:?]
>
>     at javax.cache.Caching.getCachingProvider(Caching.java:66) ~[?:?]
>
>
>
> On 05/03/2017 02:01 PM, Jason Reilly wrote:
>> Hi all,
>>
>> I tried to add caching to my persistence layer.  I added the 
>> following to my persistence.xml:
>>
>>
>>       <property name="hibernate.cache.region.factory_class" 
>> value="org.hibernate.cache.jcache.JCacheRegionFactory" />
>>
>>       <property name="hibernate.javax.cache.provider" 
>> value="org.ehcache.jsr107.EhcacheCachingProvider" />
>>
>>       <property name="hibernate.cache.use_second_level_cache" 
>> value="true" />
>>
>>       <property name="hibernate.cache.use_query_cache" value="true" />
>>
>>
>> I added the necessary dependencies (test cases all run great), but 
>> this configuration doesn't seem to deploy nicely to Karaf (4.1.1).  
>> The exception thrown is the following:
>>
>>
>> 2017-05-03 13:03:30,645 | ERROR | atures.logging]) | 
>> configadmin                      | 5 - org.apache.felix.configadmin - 
>> 1.8.14 | [org.osgi.service.cm.ManagedService, id=242, 
>> bundle=75/mvn:org.apache.aries.jpa/org.apache.aries.jpa.container/2.6.0]: 
>> Unexpected problem updating configuration org.apache.aries.jpa.canvas
>>
>> org.hibernate.service.spi.ServiceException: Unable to create 
>> requested service [org.hibernate.cache.spi.RegionFactory]
>>
>>     at 
>> org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:271) 
>> [249:org.hibernate.core:5.2.8.Final]
>>
>>     at 
>> org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:233) 
>> [249:org.hibernate.core:5.2.8.Final]
>>
>>     at 
>> org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:210) 
>> [249:org.hibernate.core:5.2.8.Final]
>>
>>     at 
>> org.hibernate.boot.internal.MetadataBuilderImpl$MetadataBuildingOptionsImpl.<init>(MetadataBuilderImpl.java:663) 
>> [249:org.hibernate.core:5.2.8.Final]
>>
>>     at 
>> org.hibernate.boot.internal.MetadataBuilderImpl.<init>(MetadataBuilderImpl.java:127) 
>> [249:org.hibernate.core:5.2.8.Final]
>>
>>     at 
>> org.hibernate.boot.MetadataSources.getMetadataBuilder(MetadataSources.java:135) 
>> [249:org.hibernate.core:5.2.8.Final]
>>
>>     at 
>> org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.<init>(EntityManagerFactoryBuilderImpl.java:214) 
>> [249:org.hibernate.core:5.2.8.Final]
>>
>>     at 
>> org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.<init>(EntityManagerFactoryBuilderImpl.java:177) 
>> [249:org.hibernate.core:5.2.8.Final]
>>
>>     at 
>> org.hibernate.jpa.boot.spi.Bootstrap.getEntityManagerFactoryBuilder(Bootstrap.java:83) 
>> [249:org.hibernate.core:5.2.8.Final]
>>
>>     at 
>> org.hibernate.jpa.boot.spi.Bootstrap.getEntityManagerFactoryBuilder(Bootstrap.java:103) 
>> [249:org.hibernate.core:5.2.8.Final]
>>
>>     at 
>> org.hibernate.osgi.OsgiPersistenceProvider.createContainerEntityManagerFactory(OsgiPersistenceProvider.java:95) 
>> [253:org.hibernate.osgi:5.2.8.Final]
>>
>>     at 
>> org.apache.aries.jpa.container.impl.ManagedEMF.createAndPublishEMF(ManagedEMF.java:129) 
>> [75:org.apache.aries.jpa.container:2.6.0]
>>
>>     at 
>> org.apache.aries.jpa.container.impl.ManagedEMF.updated(ManagedEMF.java:125) 
>> [75:org.apache.aries.jpa.container:2.6.0]
>>
>>     at 
>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updated(ManagedServiceTracker.java:189) 
>> [5:org.apache.felix.configadmin:1.8.14]
>>
>>     at 
>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updateService(ManagedServiceTracker.java:152) 
>> [5:org.apache.felix.configadmin:1.8.14]
>>
>>     at 
>> org.apache.felix.cm.impl.helper.ManagedServiceTracker.provideConfiguration(ManagedServiceTracker.java:85) 
>> [5:org.apache.felix.configadmin:1.8.14]
>>
>>     at 
>> org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceUpdate.provide(ConfigurationManager.java:1463) 
>> [5:org.apache.felix.configadmin:1.8.14]
>>
>>     at 
>> org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceUpdate.run(ConfigurationManager.java:1419) 
>> [5:org.apache.felix.configadmin:1.8.14]
>>
>>     at 
>> org.apache.felix.cm.impl.UpdateThread.run0(UpdateThread.java:141) 
>> [5:org.apache.felix.configadmin:1.8.14]
>>
>>     at 
>> org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:109) 
>> [5:org.apache.felix.configadmin:1.8.14]
>>
>>     at java.lang.Thread.run(Thread.java:745) [?:?]
>>
>> Caused by: 
>> org.hibernate.boot.registry.selector.spi.StrategySelectionException: 
>> Unable to resolve name 
>> [org.hibernate.cache.jcache.JCacheRegionFactory] as strategy 
>> [org.hibernate.cache.spi.RegionFactory]
>>
>>     at 
>> org.hibernate.boot.registry.selector.internal.StrategySelectorImpl.selectStrategyImplementor(StrategySelectorImpl.java:126) 
>> ~[?:?]
>>
>>     at 
>> org.hibernate.boot.registry.selector.internal.StrategySelectorImpl.resolveStrategy(StrategySelectorImpl.java:194) 
>> ~[?:?]
>>
>>     at 
>> org.hibernate.boot.registry.selector.internal.StrategySelectorImpl.resolveStrategy(StrategySelectorImpl.java:161) 
>> ~[?:?]
>>
>>     at 
>> org.hibernate.cache.internal.RegionFactoryInitiator.initiateService(RegionFactoryInitiator.java:67) 
>> ~[?:?]
>>
>>     at 
>> org.hibernate.cache.internal.RegionFactoryInitiator.initiateService(RegionFactoryInitiator.java:28) 
>> ~[?:?]
>>
>>     at 
>> org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:88) 
>> ~[?:?]
>>
>>     at 
>> org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:259) 
>> ~[?:?]
>>
>>
>> Checking for exports:
>>
>>
>> karaf@root()> exports | grep org.hibernate.cache.spi
>>
>> org.hibernate.cache.spi.access │ 5.2.8.Final   │ 249 │ 
>> org.hibernate.core
>>
>> org.hibernate.cache.spi.entry │ 5.2.8.Final   │ 249 │ org.hibernate.core
>>
>> org.hibernate.cache.spi │ 5.2.8.Final   │ 249 │ org.hibernate.core
>>
>> karaf@root()> exports | grep org.hibernate.cache.jcache
>>
>> org.hibernate.cache.jcache.access │ 5.2.8.Final   │ 252 │ 
>> org.hibernate.jcache
>>
>> org.hibernate.cache.jcache.time │ 5.2.8.Final   │ 252 │ 
>> org.hibernate.jcache
>>
>> org.hibernate.cache.jcache │ 5.2.8.Final   │ 252 │ org.hibernate.jcache
>>
>> karaf@root()> exports | grep org.ehcache.jsr107
>>
>> org.ehcache.jsr107.config │ 0.0.0         │ 246 │ org.ehcache.ehcache
>>
>> org.ehcache.jsr107 │ 0.0.0         │ 246 │ org.ehcache.ehcache
>>
>>
>> Anyone get Hibernate (5.2.8.Final) working in Karaf with caching? 
>> Suggestions?
>>
>>
>> Thanks,
>>
>> Jason
>>
>>
>>
>>
>


Re: hibernate caching

Posted by Jason Reilly <jd...@renci.org>.
Quick update....

Adding the following to my dao-api/pom.xml file:

<Import-Package>org.hibernate.proxy,org.ehcache.jsr107,org.hibernate.cache.jcache,javassist.util.proxy,*</Import-Package>


I get the following at startup:


2017-05-03 15:21:08,067 | ERROR | pache.cxf.osgi]) | configadmin                      | 5 - org.apache.felix.configadmin - 1.8.14 | [org.osgi.service.cm.ManagedService, id=236, bundle=73/mvn:org.apache.aries.jpa/org.apache.aries.jpa.container/2.6.1]: Unexpected problem updating configuration org.apache.aries.jpa.canvas

javax.persistence.PersistenceException: [PersistenceUnit: canvas] Unable to build Hibernate SessionFactory

     at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.persistenceException(EntityManagerFactoryBuilderImpl.java:967) [246:org.hibernate.core:5.2.10.Final]

     at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:892) [246:org.hibernate.core:5.2.10.Final]

     at org.hibernate.osgi.OsgiPersistenceProvider.createContainerEntityManagerFactory(OsgiPersistenceProvider.java:96) [251:org.hibernate.osgi:5.2.10.Final]

     at org.apache.aries.jpa.container.impl.ManagedEMF.createAndPublishEMF(ManagedEMF.java:129) [73:org.apache.aries.jpa.container:2.6.1]

     at org.apache.aries.jpa.container.impl.ManagedEMF.updated(ManagedEMF.java:125) [73:org.apache.aries.jpa.container:2.6.1]

     at org.apache.felix.cm.impl.helper.ManagedServiceTracker.updated(ManagedServiceTracker.java:189) [5:org.apache.felix.configadmin:1.8.14]

     at org.apache.felix.cm.impl.helper.ManagedServiceTracker.updateService(ManagedServiceTracker.java:152) [5:org.apache.felix.configadmin:1.8.14]

     at org.apache.felix.cm.impl.helper.ManagedServiceTracker.provideConfiguration(ManagedServiceTracker.java:85) [5:org.apache.felix.configadmin:1.8.14]

     at org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceUpdate.provide(ConfigurationManager.java:1463) [5:org.apache.felix.configadmin:1.8.14]

     at org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceUpdate.run(ConfigurationManager.java:1419) [5:org.apache.felix.configadmin:1.8.14]

     at org.apache.felix.cm.impl.UpdateThread.run0(UpdateThread.java:141) [5:org.apache.felix.configadmin:1.8.14]

     at org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:109) [5:org.apache.felix.configadmin:1.8.14]

     at java.lang.Thread.run(Thread.java:745) [?:?]

Caused by: org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.spi.CacheImplementor]

     at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:271) ~[?:?]

     at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:233) ~[?:?]

     at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:210) ~[?:?]

     at org.hibernate.service.internal.SessionFactoryServiceRegistryImpl.getService(SessionFactoryServiceRegistryImpl.java:77) ~[?:?]

     at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:240) ~[?:?]

     at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:452) ~[?:?]

     at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:889) ~[?:?]

     ... 11 more

Caused by: javax.cache.CacheException: Failed to load the CachingProvider [org.ehcache.jsr107.EhcacheCachingProvider]

     at javax.cache.Caching$CachingProviderRegistry.loadCachingProvider(Caching.java:169) ~[?:?]

     at javax.cache.Caching$CachingProviderRegistry.getCachingProvider(Caching.java:184) ~[?:?]

     at javax.cache.Caching$CachingProviderRegistry.getCachingProvider(Caching.java:156) ~[?:?]

     at javax.cache.Caching.getCachingProvider(Caching.java:66) ~[?:?]

     at org.hibernate.cache.jcache.JCacheRegionFactory.getCachingProvider(JCacheRegionFactory.java:157) ~[?:?]

     at org.hibernate.cache.jcache.JCacheRegionFactory.getCacheManager(JCacheRegionFactory.java:166) ~[?:?]

     at org.hibernate.cache.jcache.JCacheRegionFactory.start(JCacheRegionFactory.java:68) ~[?:?]

     at org.hibernate.cache.spi.RegionFactory.start(RegionFactory.java:63) ~[?:?]

     at org.hibernate.internal.CacheImpl.<init>(CacheImpl.java:71) ~[?:?]

     at org.hibernate.engine.spi.CacheInitiator.initiateService(CacheInitiator.java:28) ~[?:?]

     at org.hibernate.engine.spi.CacheInitiator.initiateService(CacheInitiator.java:20) ~[?:?]

     at org.hibernate.service.internal.SessionFactoryServiceRegistryImpl.initiateService(SessionFactoryServiceRegistryImpl.java:58) ~[?:?]

     at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:259) ~[?:?]

     at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:233) ~[?:?]

     at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:210) ~[?:?]

     at org.hibernate.service.internal.SessionFactoryServiceRegistryImpl.getService(SessionFactoryServiceRegistryImpl.java:77) ~[?:?]

     at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:240) ~[?:?]

     at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:452) ~[?:?]

     at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:889) ~[?:?]

     ... 11 more

Caused by: java.lang.ClassNotFoundException: org.ehcache.jsr107.EhcacheCachingProvider

     at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[?:?]

     at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[?:?]

     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) ~[?:?]

     at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:?]

     at javax.cache.Caching$CachingProviderRegistry.loadCachingProvider(Caching.java:162) ~[?:?]

     at javax.cache.Caching$CachingProviderRegistry.getCachingProvider(Caching.java:184) ~[?:?]

     at javax.cache.Caching$CachingProviderRegistry.getCachingProvider(Caching.java:156) ~[?:?]

     at javax.cache.Caching.getCachingProvider(Caching.java:66) ~[?:?]



On 05/03/2017 02:01 PM, Jason Reilly wrote:
> Hi all,
>
> I tried to add caching to my persistence layer.  I added the following 
> to my persistence.xml:
>
>
>       <property name="hibernate.cache.region.factory_class" 
> value="org.hibernate.cache.jcache.JCacheRegionFactory" />
>
>       <property name="hibernate.javax.cache.provider" 
> value="org.ehcache.jsr107.EhcacheCachingProvider" />
>
>       <property name="hibernate.cache.use_second_level_cache" 
> value="true" />
>
>       <property name="hibernate.cache.use_query_cache" value="true" />
>
>
> I added the necessary dependencies (test cases all run great), but 
> this configuration doesn't seem to deploy nicely to Karaf (4.1.1).  
> The exception thrown is the following:
>
>
> 2017-05-03 13:03:30,645 | ERROR | atures.logging]) | 
> configadmin                      | 5 - org.apache.felix.configadmin - 
> 1.8.14 | [org.osgi.service.cm.ManagedService, id=242, 
> bundle=75/mvn:org.apache.aries.jpa/org.apache.aries.jpa.container/2.6.0]: 
> Unexpected problem updating configuration org.apache.aries.jpa.canvas
>
> org.hibernate.service.spi.ServiceException: Unable to create requested 
> service [org.hibernate.cache.spi.RegionFactory]
>
>     at 
> org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:271) 
> [249:org.hibernate.core:5.2.8.Final]
>
>     at 
> org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:233) 
> [249:org.hibernate.core:5.2.8.Final]
>
>     at 
> org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:210) 
> [249:org.hibernate.core:5.2.8.Final]
>
>     at 
> org.hibernate.boot.internal.MetadataBuilderImpl$MetadataBuildingOptionsImpl.<init>(MetadataBuilderImpl.java:663) 
> [249:org.hibernate.core:5.2.8.Final]
>
>     at 
> org.hibernate.boot.internal.MetadataBuilderImpl.<init>(MetadataBuilderImpl.java:127) 
> [249:org.hibernate.core:5.2.8.Final]
>
>     at 
> org.hibernate.boot.MetadataSources.getMetadataBuilder(MetadataSources.java:135) 
> [249:org.hibernate.core:5.2.8.Final]
>
>     at 
> org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.<init>(EntityManagerFactoryBuilderImpl.java:214) 
> [249:org.hibernate.core:5.2.8.Final]
>
>     at 
> org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.<init>(EntityManagerFactoryBuilderImpl.java:177) 
> [249:org.hibernate.core:5.2.8.Final]
>
>     at 
> org.hibernate.jpa.boot.spi.Bootstrap.getEntityManagerFactoryBuilder(Bootstrap.java:83) 
> [249:org.hibernate.core:5.2.8.Final]
>
>     at 
> org.hibernate.jpa.boot.spi.Bootstrap.getEntityManagerFactoryBuilder(Bootstrap.java:103) 
> [249:org.hibernate.core:5.2.8.Final]
>
>     at 
> org.hibernate.osgi.OsgiPersistenceProvider.createContainerEntityManagerFactory(OsgiPersistenceProvider.java:95) 
> [253:org.hibernate.osgi:5.2.8.Final]
>
>     at 
> org.apache.aries.jpa.container.impl.ManagedEMF.createAndPublishEMF(ManagedEMF.java:129) 
> [75:org.apache.aries.jpa.container:2.6.0]
>
>     at 
> org.apache.aries.jpa.container.impl.ManagedEMF.updated(ManagedEMF.java:125) 
> [75:org.apache.aries.jpa.container:2.6.0]
>
>     at 
> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updated(ManagedServiceTracker.java:189) 
> [5:org.apache.felix.configadmin:1.8.14]
>
>     at 
> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updateService(ManagedServiceTracker.java:152) 
> [5:org.apache.felix.configadmin:1.8.14]
>
>     at 
> org.apache.felix.cm.impl.helper.ManagedServiceTracker.provideConfiguration(ManagedServiceTracker.java:85) 
> [5:org.apache.felix.configadmin:1.8.14]
>
>     at 
> org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceUpdate.provide(ConfigurationManager.java:1463) 
> [5:org.apache.felix.configadmin:1.8.14]
>
>     at 
> org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceUpdate.run(ConfigurationManager.java:1419) 
> [5:org.apache.felix.configadmin:1.8.14]
>
>     at 
> org.apache.felix.cm.impl.UpdateThread.run0(UpdateThread.java:141) 
> [5:org.apache.felix.configadmin:1.8.14]
>
>     at 
> org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:109) 
> [5:org.apache.felix.configadmin:1.8.14]
>
>     at java.lang.Thread.run(Thread.java:745) [?:?]
>
> Caused by: 
> org.hibernate.boot.registry.selector.spi.StrategySelectionException: 
> Unable to resolve name 
> [org.hibernate.cache.jcache.JCacheRegionFactory] as strategy 
> [org.hibernate.cache.spi.RegionFactory]
>
>     at 
> org.hibernate.boot.registry.selector.internal.StrategySelectorImpl.selectStrategyImplementor(StrategySelectorImpl.java:126) 
> ~[?:?]
>
>     at 
> org.hibernate.boot.registry.selector.internal.StrategySelectorImpl.resolveStrategy(StrategySelectorImpl.java:194) 
> ~[?:?]
>
>     at 
> org.hibernate.boot.registry.selector.internal.StrategySelectorImpl.resolveStrategy(StrategySelectorImpl.java:161) 
> ~[?:?]
>
>     at 
> org.hibernate.cache.internal.RegionFactoryInitiator.initiateService(RegionFactoryInitiator.java:67) 
> ~[?:?]
>
>     at 
> org.hibernate.cache.internal.RegionFactoryInitiator.initiateService(RegionFactoryInitiator.java:28) 
> ~[?:?]
>
>     at 
> org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:88) 
> ~[?:?]
>
>     at 
> org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:259) 
> ~[?:?]
>
>
> Checking for exports:
>
>
> karaf@root()> exports | grep org.hibernate.cache.spi
>
> org.hibernate.cache.spi.access │ 5.2.8.Final   │ 249 │ org.hibernate.core
>
> org.hibernate.cache.spi.entry │ 5.2.8.Final   │ 249 │ org.hibernate.core
>
> org.hibernate.cache.spi │ 5.2.8.Final   │ 249 │ org.hibernate.core
>
> karaf@root()> exports | grep org.hibernate.cache.jcache
>
> org.hibernate.cache.jcache.access │ 5.2.8.Final   │ 252 │ 
> org.hibernate.jcache
>
> org.hibernate.cache.jcache.time │ 5.2.8.Final   │ 252 │ 
> org.hibernate.jcache
>
> org.hibernate.cache.jcache │ 5.2.8.Final   │ 252 │ org.hibernate.jcache
>
> karaf@root()> exports | grep org.ehcache.jsr107
>
> org.ehcache.jsr107.config │ 0.0.0         │ 246 │ org.ehcache.ehcache
>
> org.ehcache.jsr107 │ 0.0.0         │ 246 │ org.ehcache.ehcache
>
>
> Anyone get Hibernate (5.2.8.Final) working in Karaf with caching? 
> Suggestions?
>
>
> Thanks,
>
> Jason
>
>
>
>