簡體   English   中英

簡單的ehcache項目異常

[英]Simple ehcache project exception

我目前正在將一些項目轉換為Maven,並且在戰爭爆發時遇到了問題。 因此,我剛剛創建了一個非常簡單的ehcache maven項目,並且遇到了類加載器的問題。 這是我的pom:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.test</groupId>
<artifactId>MVCTest</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<properties>
    <spring.version>3.2.4.RELEASE</spring.version>
</properties>

<dependencies>

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
        <scope>provided</scope>
    </dependency>

    <!-- Spring 3 dependencies -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>${spring.version}</version>
    </dependency>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</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-context-support</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-aop</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>com.googlecode.ehcache-spring-annotations</groupId>
        <artifactId>ehcache-spring-annotations</artifactId>
        <version>1.2.0</version>
    </dependency>
</dependencies>
<build>
    <finalName>SpringMVC</finalName>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
        </plugin>
    </plugins>
</build>

春季配置:http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring- context-3.0.xsd http://ehcache-spring-annotations.googlecode.com/svn/schema/ehcache-spring http://ehcache-spring-annotations.googlecode.com/svn/schema/ehcache-spring/ehcache-彈簧1.1.xsd “>

<context:component-scan base-package="com.test.common.controller" />


<ehcache:annotation-driven />

<bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheCacheManager">
    <property name="cacheManager" ref="ehcache" />
</bean>

<bean id="ehcache"
    class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
    <property name="configLocation" value="/WEB-INF/ehcache.xml" />
</bean>

<bean
    class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix">
        <value>/WEB-INF/pages/</value>
    </property>
    <property name="suffix">
        <value>.jsp</value>
    </property>
</bean>

我以前在springmvc部分中沒有使用ehcache,但具有HelloWorld類型的mvc設置。

拋出此異常:SEVERE:上下文初始化失敗org.springframework.beans.factory.BeanCreationException:創建文件[C:\\ Users \\ umxa894 \\ workspace \\ Spring.metadata.plugins \\ org中定義的名稱為'helloController'的bean時出錯。 eclipse.wst.server.core \\ tmp0 \\ wtpwebapps \\ MVCTest \\ WEB-INF \\ classes \\ com \\ test \\ common \\ controller \\ HelloController.class]:Bean初始化失敗; 嵌套異常是org.springframework.beans.factory.BeanCreationException:創建名稱為'com.googlecode.ehcache.annotations.config.internalEhCacheCachingAdvisor'的bean時出錯:無法解析對bean'com.googlecode.ehcache.annotations.impl.CacheStaticMethodMatcherPointcut#的引用設置bean屬性“ pointcut”時為0; 嵌套的異常是org.springframework.beans.factory.BeanCreationException:創建名稱為com.googlecode.ehcache.annotations.impl.CacheStaticMethodMatcherPointcut#0'的bean時出錯:無法解析對bean com.googlecode.ehcache.annotations.impl的引用。設置bean屬性'cacheAttributeSource'時的CacheAttributeSourceImpl#0'; 嵌套的異常是org.springframework.beans.factory.BeanCreationException:創建名稱為'com.googlecode.ehcache.annotations.impl.CacheAttributeSourceImpl#0'的bean時出錯:bean的初始化失敗; 嵌套異常是org.springframework.beans.ConversionNotSupportedException:無法將類型“ org.springframework.cache.ehcache.EhCacheCacheManager”的屬性值轉換為屬性“ cacheManager”的必需類型“ net.sf.ehcache.CacheManager”; 嵌套異常是java.lang.IllegalStateException:無法將類型“ org.springframework.cache.ehcache.EhCacheCacheManager”的值轉換為屬性“ cacheManager”的必需類型[net.sf.ehcache.CacheManager]:未找到匹配的編輯器或轉換策略在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:529)在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458)在org.springframework.beans.factory org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)的org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(.support.AbstractBeanFactory $ 1.getObject(AbstractBeanFactory.java:295) org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)上的org.springframework .beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:628)在org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)在org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext .java:479),位於org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:389),位於org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:294),位於org.springframework.web。 org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4973)處的context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112)org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5467)在org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)在org.apache.catalina.core.ContainerBase $ StartChild.call(ContainerBase.java:15 59)在org.apache.catalina.core.ContainerBase $ StartChild.call(ContainerBase.java:1549)在java.util.concurrent.FutureTask.run(未知源)在java.util.concurrent.ThreadPoolExecutor.runWorker(未知源) )在java.lang.Thread.run(未知源)處java.util.concurrent.ThreadPoolExecutor $ Worker.run(未知源)原因:org.springframework.beans.factory.BeanCreationException:創建名稱為'com的bean時出錯。 googlecode.ehcache.annotations.config.internalEhCacheCachingAdvisor':設置bean屬性“ pointcut”時,無法解析對bean“ com.googlecode.ehcache.annotations.impl.CacheStaticMethodMatcherPointcut#0”的引用; 嵌套的異常是org.springframework.beans.factory.BeanCreationException:創建名稱為com.googlecode.ehcache.annotations.impl.CacheStaticMethodMatcherPointcut#0'的bean時出錯:無法解析對bean com.googlecode.ehcache.annotations.impl的引用。設置bean屬性'cacheAttributeSource'時的CacheAttributeSourceImpl#0'; 嵌套的異常是org.springframework.beans.factory.BeanCreationException:創建名稱為'com.googlecode.ehcache.annotations.impl.CacheAttributeSourceImpl#0'的bean時出錯:bean的初始化失敗; 嵌套異常是org.springframework.beans.ConversionNotSupportedException:無法將類型“ org.springframework.cache.ehcache.EhCacheCacheManager”的屬性值轉換為屬性“ cacheManager”的必需類型“ net.sf.ehcache.CacheManager”; 嵌套異常是java.lang.IllegalStateException:無法將類型“ org.springframework.cache.ehcache.EhCacheCacheManager”的值轉換為屬性“ cacheManager”的必需類型[net.sf.ehcache.CacheManager]:未找到匹配的編輯器或轉換策略在org.springframework.beans.factory.support.BeanDefinitionValueResolver.java:329處在org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)在org.springframework.beans.factory org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1128)上的.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1387)在org.springframework.beans.factory.support.AbstractAutowireCapableBean(Domain.do .java:519),網址為org.springframework.beans.factory.support.Abstra org.springframework.beans.beans.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.org)上的ctAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458)在org.springframework.beans.factory.support.AbstractBeanFactory $ 1.getObject(AbstractBeanFactory.java:295) :223)在org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)在org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:198)在org.springframework。 org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.findCandidateAdvisors(AbstractAdvisorAutoProxyCreator。在org.springframework.aop.framework.autoproxy.Ab的findEligibleAdvisors(AbstractAdvisorAutoProxyCreator.java:87) stractAdvisorAutoProxyCreator.getAdvicesAndAdvisorsForBean(AbstractAdvisorAutoProxyCreator.java:69)在org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.wrapIfNecessary(AbstractAutoProxyCreator.java:359)在org.springframework.aop.framework.autoproxy.Abstract。 322),位於org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1488)的org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapableBeanFactory.java:409) .factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:521)... 20更多原因:org.springframework.beans.factory.BeanCreationException:創建名稱為'com.googlecode.ehcache.annotations.impl.CacheStaticMethodMatcherPointcut的bean時出錯#0':坎恩 在設置bean屬性“ cacheAttributeSource”時,解析對bean“ com.googlecode.ehcache.annotations.impl.CacheAttributeSourceImpl#0”的引用; 嵌套的異常是org.springframework.beans.factory.BeanCreationException:創建名稱為'com.googlecode.ehcache.annotations.impl.CacheAttributeSourceImpl#0'的bean時出錯:bean的初始化失敗; 嵌套異常是org.springframework.beans.ConversionNotSupportedException:無法將類型“ org.springframework.cache.ehcache.EhCacheCacheManager”的屬性值轉換為屬性“ cacheManager”的必需類型“ net.sf.ehcache.CacheManager”; 嵌套異常是java.lang.IllegalStateException:無法將類型“ org.springframework.cache.ehcache.EhCacheCacheManager”的值轉換為屬性“ cacheManager”的必需類型[net.sf.ehcache.CacheManager]:未找到匹配的編輯器或轉換策略在org.springframework.beans.factory.support.BeanDefinitionValueResolver.java:329處在org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)在org.springframework.beans.factory org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1128)上的.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1387)在org.springframework.beans.factory.support.AbstractAutowireCapableBean(Domain.do .java:519),網址為org.springframework.beans.factory.support.Abstra org.springframework.beans.beans.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.org)上的ctAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458)在org.springframework.beans.factory.support.AbstractBeanFactory $ 1.getObject(AbstractBeanFactory.java:295) :223)在org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)在org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)在org.springframework。 beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)... 38更多原因:org.springframework.beans.factory.BeanCreationException:創建名稱為'com.googlecode.ehcache.annotations.impl的bean時出錯。 CacheAttributeSourceImpl#0':Bean初始化失敗; 嵌套異常是org.springframework.beans.ConversionNotSupportedException:無法將類型“ org.springframework.cache.ehcache.EhCacheCacheManager”的屬性值轉換為屬性“ cacheManager”的必需類型“ net.sf.ehcache.CacheManager”; 嵌套異常是java.lang.IllegalStateException:無法將類型“ org.springframework.cache.ehcache.EhCacheCacheManager”的值轉換為屬性“ cacheManager”的必需類型[net.sf.ehcache.CacheManager]:未找到匹配的編輯器或轉換策略在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:529)在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458)在org.springframework.beans.factory org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)的org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(.support.AbstractBeanFactory $ 1.getObject(AbstractBeanFactory.java:295) org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)上的org.springframework .beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)... 48更多原因:org.springframework.beans.ConversionNotSupportedException:無法轉換類型為org.springframework.cache.ehcache.EhCacheCacheManager的屬性值'設置為屬性'cacheManager'所需的'net.sf.ehcache.CacheManager'類型; 嵌套異常是java.lang.IllegalStateException:無法將類型“ org.springframework.cache.ehcache.EhCacheCacheManager”的值轉換為屬性“ cacheManager”的必需類型[net.sf.ehcache.CacheManager]:未找到匹配的編輯器或轉換策略在org.springframework.beans.BeanWrapperImpl.convertForProperty(org.springframework.beans.BeanWrapperImpl.convertIfNecessary(BeanWrapperImpl.java:463)在org.springframework.beans.BeanWrapperImpl.convertForProperty(BeanWrapperImpl.java:494)在org.springframework.beans.BeanWrapperImpl.convertForProperty )在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.convertForProperty(AbstractAutowireCapableBeanFactory.java:1433)在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1392)在org.spring。 org.springframework.beans.factory上的factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1128)。 support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)... 54更多原因:java.lang.IllegalStateException:無法將[org.springframework.cache.ehcache.EhCacheCacheManager]類型的值轉換為所需的類型[net.sf。 ehcache.CacheManager]用於屬性“ cacheManager”:在org.springframework.beans.Beans.BeanWrapperImpl.convertIfNecessary(BeanWrapperImpl.java:448 )... 60另外

我想念什么? 我假設這很簡單,但是我的項目看起來像一個簡單的ehcache項目的幾乎所有hello世界類型的配置。

Spring的EhCacheCacheManager類充當EhCache CacheManager實例的包裝器。 EhCacheManagerFactoryBean生成已包裝在EhCacheCacheManager對象中的EhCacheCacheManager 因此,基本上,您正在嘗試包裝已包裝的對象。 而是只創建一個bean(使用工廠),您應該得到想要的東西:

<bean id="cacheManager" 
    class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
  <property name="configLocation" value="/WEB-INF/ehcache.xml" />
</bean>

如果您需要引用EhCache CacheManager實例,則此cacheManager bean的getCacheManager()字段上提供了該cacheManager

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM