Hibernate EHCache loadAndCorrectConfiguration NPE
我尝试将ehcache与hibernate/spring结合使用。我的尝试是投掷NPE 我被困在这件事上了。而且,谷歌搜索也无济于事Hibernate EHCache loadAndCorrectConfiguration NPE,hibernate,spring,ehcache,Hibernate,Spring,Ehcache,我尝试将ehcache与hibernate/spring结合使用。我的尝试是投掷NPE 我被困在这件事上了。而且,谷歌搜索也无济于事 Caused by: java.lang.NullPointerException at net.sf.ehcache.hibernate.HibernateUtil.loadAndCorrectConfiguration(HibernateUtil.java:48) at net.sf.ehcache.hibernate.EhCacheRegionFacto
Caused by: java.lang.NullPointerException
at net.sf.ehcache.hibernate.HibernateUtil.loadAndCorrectConfiguration(HibernateUtil.java:48)
at net.sf.ehcache.hibernate.EhCacheRegionFactory.start(EhCacheRegionFactory.java:79)
at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:236)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1842)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:855)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:774)
at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:211)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1469)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1409)
... 99 more
原因:java.lang.NullPointerException
在net.sf.ehcache.hibernate.HibernateUtil.loadAndCorrectConfiguration(HibernateUtil.java:48)中
位于net.sf.ehcache.hibernate.EhCacheRegionFactory.start(EhCacheRegionFactory.java:79)
位于org.hibernate.impl.SessionFactoryImpl.(SessionFactoryImpl.java:236)
位于org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1842)
位于org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:855)
位于org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:774)
位于org.springframework.orm.hibernate3.AbstractSessionFactoryBean.AfterPropertieSet(AbstractSessionFactoryBean.java:211)
位于org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1469)
位于org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1409)
... 99多
以下是我的spring配置:
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="myDataSource"/>
<property name="annotatedClasses">
<list>
<value>com.agriserver.domain.AaFriend</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<!-- Enable EHCache -->
<prop key="hibernate.cache.use_second_level_cache">true</prop>
<prop key="hibernate.cache.use_query_cache">false</prop>
<prop key="hibernate.cache.region.factory_class">net.sf.ehcache.hibernate.EhCacheRegionFactory</prop>
<prop key="net.sf.ehcache.configurationResourceName">/ehcache.xml</prop>
</props>
</property>
com.agriserver.domain.AaFriend
org.hibernate.dialogue.mysqldialogue
真的
真的
假的
net.sf.ehcache.hibernate.EhCacheRegionFactory
/ehcache.xml
以下是ehcache.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<ehcache>
<diskStore path="java.io.tmpdir"/>
<cache
name="com.agriserver.domain.AaFriend"
maxElementsInMemory="10"
maxElementsOnDisk="1000"
eternal="false"
timeToIdleSeconds="300"
timeToLiveSeconds="600"
overflowToDisk="true"
/>
<cache
name="org.hibernate.cache.StandardQueryCache"
maxElementsInMemory="1"
eternal="false"
timeToLiveSeconds="120"
overflowToDisk="false"/>
</ehcache>
摘录pom.xml以显示jar文件的版本:
<properties>
<cxf.version>2.2.7</cxf.version>
<spring.version>3.0.4.RELEASE</spring.version>
<hibernate.version>3.6.0.Final</hibernate.version>
<hibernate.annotations.version>3.3.0.ga</hibernate.annotations.version>
<facebook.version>3.0.2</facebook.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-taglibs</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springmodules</groupId>
<artifactId>spring-modules-validation</artifactId>
<version>0.8</version>
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring</artifactId>
<!--<version>2.03</version>-->
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.4</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>${hibernate.version}</version>
<exclusions>
<exclusion>
<groupId>javax.transaction</groupId>
<artifactId>jta</artifactId>
</exclusion>
<exclusion>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache-core</artifactId>
<version>2.2.0</version>
<!--<type>pom</type>-->
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.6.1</version>
</dependency>
<dependency>
<groupId>javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.8.0.GA</version>
</dependency>
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib</artifactId>
<version>2.2</version>
</dependency>
2.2.7
3.0.4.1发布
3.6.0.1最终版本
3.3.0.ga
3.0.2
org.springframework
弹簧芯
${spring.version}
org.springframework
春豆
${spring.version}
org.springframework
spring上下文
${spring.version}
org.springframework
spring上下文支持
${spring.version}
org.springframework
春季aop
${spring.version}
org.springframework
SpringWebMVC
${spring.version}
org.springframework
春季甲虫
${spring.version}
org.springframework.security
spring安全网
${spring.version}
org.springframework.security
spring安全配置
${spring.version}
org.springframework.security
spring安全标记库
${spring.version}
org.springmodules
spring模块验证
0.8
org.springframework
春天
javax.servlet
servlet api
2.4
假如
javax.servlet.jsp
jsp api
2
假如
org.hibernate
冬眠核心
${hibernate.version}
javax.transaction
jta
net.sf.ehcache
ehcache
net.sf.ehcache
ehcache内核
2.2.0
org.slf4j
slf4j-log4j12
1.6.1
javassist
javassist
3.8.0.GA
cglib
cglib
2.2
有什么提示吗?通过将以下内容添加到ehcache.xml中,问题似乎消失了。奇怪,因为我从ehcache网站的入门部分复制并粘贴了我的ehcache.xml。而且,它没有这个部分:
<defaultCache
maxElementsInMemory="10000"
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
overflowToDisk="true"
maxElementsOnDisk="10000000"
diskPersistent="false"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LRU"
/>
Spring、Hibernate和EhCache的哪个版本?添加了pom.xml的摘录,以显示所有dependencies.xml的版本。在我的宠物项目(没有Spring)中,EHCache抱怨我的EHCache.xml没有defaultCache,但它没有因NPE而失败。它不应该这样。如果你能制造一个Jira问题那就太好了。我也遇到了同样的情况。。首次在hibernate中设置ehcache,使用了网站中的示例ehcache.xml,并获得了实例化会话的NullPointerException。将元素放入ehcache.xml中修复了它。关于这个问题,你打开Jira了吗?顺便说一句,我刚刚发现他们在哪里显示了ehcache-failsafe.xml的内容,其中包含diskStore和defaultCache的最小配置。我想应该在为自己的应用程序提供的任何ehcache.xml中包含类似的内容。