Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 正在EHCache中检索CacheManager对象_Java_Database_Hibernate_Orm_Ehcache - Fatal编程技术网

Java 正在EHCache中检索CacheManager对象

Java 正在EHCache中检索CacheManager对象,java,database,hibernate,orm,ehcache,Java,Database,Hibernate,Orm,Ehcache,我使用HibernateV3.2.5和EHCache(EHCache-1.2.3.jar)进行二级缓存 这是ehcache.xml文件: <ehcache> <defaultCache maxElementsInMemory="100" eternal="false" timeToIdleSeconds="120" timeToLiveSeconds="200" /> <cache name="departments" maxElementsInMemory

我使用HibernateV3.2.5和EHCache(
EHCache-1.2.3.jar
)进行二级缓存

这是ehcache.xml文件:

<ehcache>
  <defaultCache maxElementsInMemory="100" eternal="false" timeToIdleSeconds="120" timeToLiveSeconds="200" />
  <cache name="departments" maxElementsInMemory="100" eternal="false" timeToIdleSeconds="5" timeToLiveSeconds="200" />
</ehcache>
我得到一个例外:

Exception in thread "main" java.lang.NullPointerException
at net.sf.ehcache.CacheManager.detectAndFixDiskStorePathConflict(CacheManager.java:269)
at net.sf.ehcache.CacheManager.configure(CacheManager.java:252)
at net.sf.ehcache.CacheManager.init(CacheManager.java:196)
at net.sf.ehcache.CacheManager.<init>(CacheManager.java:131)
at com.demo.Test.main(OneToMany.java:52)
但我还是得到了同样的例外

编辑:

trial.cfg.xml

<property name="hibernate.connection.username">XXX</property>
<property name="hibernate.connection.password">XXX</property>
<property name="hibernate.connection.driver_class">oracle.jdbc.OracleDriver</property>
<property name="hibernate.connection.url">XXX</property>
<property name="cache.provider_class">org.hibernate.cache.EhCacheProvider</property>
<property name="hibernate.jdbc.batch_size">30</property>
<property name="hibernate.dialect">org.hibernate.dialect.OracleDialect</property>
<property name="hibernate.cache.use_query_cache">false</property>
<property name="hibernate.cache.use_second_level_cache">true</property>
<property name="hibernate.connection.release_mode">after_transaction</property>
<property name="hibernate.connection.autocommit">true</property>
<property name="hibernate.connection.pool_size">0</property>
<property name="hibernate.current_session_context_class">thread</property>    
<property name="hibernate.show_sql">true</property>
<property name="hibernate.hbm2ddl.auto">update</property>
XXX
XXX
oracle.jdbc.OracleDriver
XXX
org.hibernate.cache.EhCacheProvider
30
org.hibernate.dialen.oraclealent
假的
真的
事后交易
真的
0
线
真的
更新

请告诉我如何解决这个问题。

编译包中没有
src
文件夹,请将
“src/ehcache.xml”
替换为
ehcache.xml
,同时检查xml是否放在“bin”或类编译的文件夹中。如果我像您提到的那样更改,那么我将得到此异常:
线程中的异常“main”net.sf.ehcache.CacheException:从ehcache.xml配置时出错。初始原因是ehcache.xml(系统找不到指定的文件)
好的,对此做了一些研究……NPE错误是因为另一个缓存会话已经启动,可能您已经将hibernate配置为使用缓存,如果可以的话,请发布trial.cfg.xml文件。我已经在上面的帖子中发布了它。请让我知道这一点。更改为false属性
true
并删除
org.hibernate.cache.EhCacheProvider
Cache cache = CacheManager.getInstance().getCache("departments");
<property name="hibernate.connection.username">XXX</property>
<property name="hibernate.connection.password">XXX</property>
<property name="hibernate.connection.driver_class">oracle.jdbc.OracleDriver</property>
<property name="hibernate.connection.url">XXX</property>
<property name="cache.provider_class">org.hibernate.cache.EhCacheProvider</property>
<property name="hibernate.jdbc.batch_size">30</property>
<property name="hibernate.dialect">org.hibernate.dialect.OracleDialect</property>
<property name="hibernate.cache.use_query_cache">false</property>
<property name="hibernate.cache.use_second_level_cache">true</property>
<property name="hibernate.connection.release_mode">after_transaction</property>
<property name="hibernate.connection.autocommit">true</property>
<property name="hibernate.connection.pool_size">0</property>
<property name="hibernate.current_session_context_class">thread</property>    
<property name="hibernate.show_sql">true</property>
<property name="hibernate.hbm2ddl.auto">update</property>