同事配置Spring security 2,使用Ehcache 缓冲时出现如下错误
Caused by: java.lang.NoSuchMethodError: net.sf.ehcache.Cache.<init>(Ljava/lang/String;ILnet/sf/ehcache/store/MemoryStoreEvictionPolicy;ZLjava/lang/String;ZJJZJLnet/sf/ehcache/event/RegisteredEventListeners;Lnet/sf/ehcache/bootstrap/BootstrapCacheLoader;I)V
Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.security.userdetails.jdbc.JdbcUserDetailsManager#0.caching': Cannot resolve reference to bean 'userCache' while setting bean property 'userCache'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userCache' defined in ServletContext resource [/WEB-INF/spring-security.xml]: Cannot resolve reference to bean 'userEhCache' while setting bean property 'cache'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userEhCache' defined in ServletContext resource [/WEB-INF/spring-security.xml]: Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: net.sf.ehcache.Cache.<init>(Ljava/lang/String;ILnet/sf/ehcache/store/MemoryStoreEvictionPolicy;ZLjava/lang/String;ZJJZJLnet/sf/ehcache/event/RegisteredEventListeners;Lnet/sf/ehcache/bootstrap/BootstrapCacheLoader;I)V
原因:使用ehcache-1.3.0.jar或者ehcache-1.5.0.jar替换 ehcache-1.2.3.jar
还需 backport-util-concurrent-3.1.jar
不然会报:java.lang.ClassNotFoundException: edu.emory.mathcs.backport.java.util.concurrent.Exe cutionException
backport-util-concurrent-3.1.jar 下载地址。
http://mirrors.ibiblio.org/pub/mirrors/maven/mule/dependencies/maven2/backport-util-concurrent/backport-util-concurrent/3.1/backport-util-concurrent-3.1.jar