2012-08-16 9 views
5

मैं एक हाइबरनेट (v 4.1.5.SP1, सत्यापनकर्ता 4.3.0. अंतिम) अनुप्रयोग (एक जार फ़ाइल) एक MySQL 5.5 डीबी पर जेबॉस 4.2.3.GA (इसे बदल नहीं सकता) पर चल रहा है। मुझे त्रुटि मिल रही है "org.hibernate.cache.NoCachingEnabledException: ऐप चलाने पर द्वितीय-स्तर कैश उपयोग के लिए सक्षम नहीं है", लेकिन ऐसा लगता है कि मैंने सही ढंग से सब कुछ ठीक से कॉन्फ़िगर किया है। मैं इन Maven निर्भरता उपयोग कर रहा हूँ ...हाइबरनेट कैश को कॉन्फ़िगर करने में समस्या - org.hibernate.cache.NoCachingEnabledException: उपयोग के लिए द्वितीय-स्तरीय कैश सक्षम नहीं है

  <!-- 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> 

त्रुटि अजीब है क्योंकि मैं कैश मेरी hibernate.cfg.xml फ़ाइल में विन्यस्त है ...

<?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> 

इस में शामिल है मेरी META-INF/persistence.xml फ़ाइल है, जो नीचे है ...

<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> 

JBoss classloaders ओवरराइड करने के लिए, मैं 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> 

यहां पूरा स्टैक ट्रेस है। इसका क्या कारण है?

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 

धन्यवाद, - डेव

+0

'hibernate.cache.provider_class है कहते हैं 'org.hibernate.cache.EhCacheProvider' के रूप में परिभाषित किया गया है? – SiB

उत्तर

3

कर देखें कि कहीं this जो मैं Googling के साथ पाया आप में मदद करता है ...

यह आप कॉन्फ़िगर करना चाहिए hibernate.cache.provider_classorg.hibernate.cache.EhCacheProvider रूप