De la difficulté de la configuration d'Hibernate cache — org.mise en veille prolongée.le cache.NoCachingEnabledException: cache de Second niveau n'est pas activé pour l'utilisation

Je suis le déploiement d'une mise en veille prolongée (v 4.1.5.SP1, validateur 4.3.0.Final) application (fichier Jar) en cours d'exécution sur une base de données MySQL 5.5 db pour JBoss 4.2.3.GA (ne peut pas le modifier). J'obtiens le message d'erreur "org.mise en veille prolongée.le cache.NoCachingEnabledException: cache de Second niveau n'est pas activé pour l'utilisation de la" lors de l'exécution de l'application, mais il semble que j'ai configuré everythign correctement. Je suis à l'aide de ces dépendances Maven ...

            <!-- Hibernate dependencies -->
            <dependency>
                    <groupId>org.hibernate</groupId>
                    <artifactId>hibernate-validator</artifactId>
                    <version>${hibernate.validator.version}</version>
            </dependency>
            <dependency>
                    <groupId>org.hibernate</groupId>
                    <artifactId>hibernate-entitymanager</artifactId>
                    <version>${hibernate.version}</version>
            </dependency>
            <dependency>
                    <groupId>org.hibernate</groupId>
                    <artifactId>hibernate-ehcache</artifactId>
                    <version>${hibernate.version}</version>
            </dependency>

L'erreur est bizarre parce que j'ai le cache configuré dans mon hibernate.cfg.xml fichier ...

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
        <session-factory>
                <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
                <property name="hibernate.connection.datasource">java:/MySqlDS</property>
                <property name="hibernate.connection.pool_size">10</property>
                <property name="show_sql">true</property>
                <property name="dialect">org.hibernate.dialect.MySQLDialect</property>

                <!-- Enable Hibernate's automatic session context management -->
        <property name="current_session_context_class">thread</property>

        <!--  Caching -->
        <property name="hibernate.cache.use_second_level_cache">true</property>
                <property name="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</property>

                <mapping class="org.mainco.subco.orgsclient.model.Organization" />
                <mapping class="org.mainco.subco.orgsclient.model.Community" />
                <mapping class="org.mainco.subco.orgsclient.model.Domain" />
                <mapping class="org.mainco.subco.orgsclient.model.State" />
                <mapping class="org.mainco.subco.orgsclient.model.Country" />

        </session-factory>
</hibernate-configuration>

C'est inclus dans mon META-INF/persistence.xml le fichier, qui est ci-dessous ...

<persistence>
        <persistence-unit name="orgsclientunit" transaction-type="JTA">
                <provider>org.hibernate.ejb.HibernatePersistence</provider>
                <jta-data-source>java:/MySqlDS</jta-data-source>
                <properties>
                        <property name="hibernate.ejb.cfgfile" value="hibernate.cfg.xml" />
                        <property name="hibernate.validator.apply_to_ddl">false</property>
                        <property name="hibernate.validator.autoregister_listeners">false</property>
                        <property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.JBossTransactionManagerLookup"/>
                </properties>
        </persistence-unit>
</persistence>

Pour remplacer le JBoss chargeurs de classes, j'ai inclure ce fichier dans META-INF/jboss.xml ...

<jboss>
        <class-loading java2ClassLoadingCompliance="false">
                <!-- setup classLoader repository. java2ParentDelegation to always have
                        package libs override server libs for this application -->
                <loader-repository>
                        org.mainco.subco.orgs:loader=orgsclient
                        <loader-repository-config>
                                java2ParentDelegation=false
                        </loader-repository-config>
                </loader-repository>
        </class-loading>
</jboss>

Ici est la trace de la pile complète. Quelle est la cause de cela?

2012-08-16 11:01:37,195 ERROR [org.mainco.subco.orgsclient.service.OrganizationServiceImpl] org.hibernate.HibernateException: Could not instantiate cache implementation^M
javax.persistence.PersistenceException: org.hibernate.HibernateException: Could not instantiate cache implementation^M
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:720)^M
at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:121)^M
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:51)^M
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:33)^M
at org.mainco.subco.orgsclient.service.AbstractTransactionService.startOperation(AbstractTransactionService.java:27)^M
at org.mainco.subco.orgsclient.service.OrganizationServiceImpl.saveOrganization(OrganizationServiceImpl.java:87)^M
at org.mainco.subco.orgsclient.service.OrganizationServiceImpl.getEODBOrganizations(OrganizationServiceImpl.java:221)^M
at org.mainco.subco.orgsclient.service.OrganizationServiceImpl.saveOrgsFromWebService(OrganizationServiceImpl.java:183)^M
at org.mainco.subco.orgsclient.quartz.UpdateOrgsJob.execute(UpdateOrgsJob.java:55)^M
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)^M
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)^M
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)^M
at java.lang.reflect.Method.invoke(Method.java:597)^M
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:112)^M
at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:166)^M
at org.jboss.ejb3.interceptor.EJB3InterceptorsInterceptor.invoke(EJB3InterceptorsInterceptor.java:63)^M
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)^M
at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:54)^M
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)^M
at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:47)^M
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)^M
at org.jboss.aspects.tx.TxPolicy.invokeInCallerTx(TxPolicy.java:126)^M
at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:195)^M
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)^M
at org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:62)^M
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)^M
at org.jboss.ejb3.mdb.MessagingContainer.localInvoke(MessagingContainer.java:249)^M
at org.jboss.ejb3.mdb.inflow.MessageInflowLocalProxy.delivery(MessageInflowLocalProxy.java:268)^M
at org.jboss.ejb3.mdb.inflow.MessageInflowLocalProxy.invoke(MessageInflowLocalProxy.java:138)^M
at $Proxy81.execute(Unknown Source)^M
at org.jboss.resource.adapter.quartz.inflow.QuartzJob.execute(QuartzJob.java:57)^M
at org.quartz.core.JobRunShell.run(JobRunShell.java:203)^M
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:520)^M
Caused by: org.hibernate.HibernateException: Could not instantiate cache implementation^M
at org.hibernate.cache.CacheFactory.createCache(CacheFactory.java:64)^M
at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:214)^M
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1294)^M
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:713)^M
... 32 more^M
Caused by: org.hibernate.cache.NoCachingEnabledException: Second-level cache is not enabled for usage [hibernate.cache.use_second_level_cache | hibernate.cache.use_query_cache]^M
at org.hibernate.cache.NoCacheProvider.buildCache(NoCacheProvider.java:21)^M
at org.hibernate.cache.CacheFactory.createCache(CacheFactory.java:61)^M
... 35 more^M

Grâce, - Dave

Est hibernate.cache.provider_class défini comme org.hibernate.cache.EhCacheProvider?

OriginalL'auteur Dave A | 2012-08-16