Ehcache-element <cache/> nicht erlaubt Attribut "transactionalMode"?
Entsprechend der Ehcache Dokumentation, beginnend mit version 2.0, eine Ehcache-cache kann die Teilnahme an einer JTA Transaktion auf den Wert des Attributs transactionalMode
auf element <cache/>
.
Wenn das wahr ist, warum dann nicht Ehcache, wenn es auf dieses Attribut in meinem Ehcache-Konfiguration-Datei, werfen Sie die folgende Ausnahme und beschweren sich, dass "Element nicht erlaubt Attribut "transactionalMode".":
Caused by: net.sf.ehcache.CacheException: Error configuring from zip:C:/Program Files/Oracle/Middleware/user_projects/domains/abstrack1/servers/AdminServer/tmp/_WL_user/_appsdir_middleware-ear-1.0-SNAPSHOT_ear/n8rga7/middleware-ejb-1.0-SNAPSHOT.jar!/ehcache.xml. Initial cause was Error configuring from input stream. Initial cause was null:35: Element <cache> does not allow attribute "transactionalMode".
at net.sf.ehcache.config.ConfigurationFactory.parseConfiguration(ConfigurationFactory.java:95)
at net.sf.ehcache.config.ConfigurationFactory.parseConfiguration(ConfigurationFactory.java:131)
at net.sf.ehcache.CacheManager.parseConfiguration(CacheManager.java:241)
at net.sf.ehcache.CacheManager.init(CacheManager.java:190)
at net.sf.ehcache.CacheManager.<init>(CacheManager.java:183)
at net.sf.ehcache.hibernate.EhCacheProvider.start(EhCacheProvider.java:128)
at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:183)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1291)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:814)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:732)
at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:211)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1369)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1335)
... 76 more]]>
Hier ist ein Beispiel-cache definition aus meiner ehcache.xml
- Datei, in die ich eingestellt habe transactionalMode
zu "xa":
<cache
name="com.db.spgit.abstrack.model.Security"
maxElementsInMemory="500"
eternal="false"
timeToIdleSeconds="300"
timeToLiveSeconds="86400"
overflowToDisk="false"
transactionalMode="xa" />
- Funktioniert gut für mich. Sind Sie sicher, dass Sie ehcache v2+ in den classpath? Haben Sie vielleicht zwei Versionen durch einen Unfall, vielleicht den Ruhezustand Abhängigkeit ist im Lieferumfang enthalten?
- Skaffman, du hast Recht! Hibernate 3.3.2.GA mit Ehcache integration aufgenommen hat, Ehcache 1.2.3 und ich explizit enthalten Ehcache 2.1.0 (und dann 2.2.0). Kennt Ihr zufällig die version von Hibernate unterstützt (benötigt) Ehcache 2.0 oder höher?
- Altneratively, wie kann ich verhindern, dass Maven auch von Ehcache 1.2.3 und stattdessen Ehcache 2.2.0 mit Hibernate Ehcache 3.3.2 GA (hängt davon ab, Ehcache 1.2.3) oder 3.5.1-Final (hängt davon ab, Ehcache 1.5.0)? Fühlen Sie sich frei, um Ihre Kommentare in Ihrer Antwort auf meine Frage.
- Ich habe gefördert, die Frage in meinem zweiten Kommentar zu einer Frage Ihrer eigenen in stackoverflow.com/questions/3561235/....
Du musst angemeldet sein, um einen Kommentar abzugeben.
Stellt sich heraus, dass Maven umfaßte auch Ehcache 1.2.3 in meinem Projekt EAR-Datei, weil Hibernate Ehcache Integration 3.3.2.GA benötigt Ehcache 1.2.3.
das bedeutet, dass Sie müssen entfernen die transitive Abhängigkeit ehcache 1.2.3.jar und lassen Sie stehen 2.X-version . brauchen, um zu sehen, ob dies kein problem, die Arbeit mit hibernate 3.2.X obwohl.