Что это за ошибка в spring mvc, интегрированная через memcache

Я хочу использовать simple-spring-memcached для кэширования данных. поэтому с помощью этого https://code.google.com/p/simple-spring-memcached/wiki/Getting_Started для моей цели. я добавляю в свой диспетчер-servlet.xml

  <aop:aspectj-autoproxy />
  <import resource="simplesm-context.xml" /> 
  <bean name="cacheManager" class="com.google.code.ssm.spring.SSMCacheManager">
    <property name="caches">
        <set>
            <bean class="com.google.code.ssm.spring.SSMCache">
                <constructor-arg name="cache" index="0" ref="defaultCache"/>
                <!-- 5 minutes -->
                <constructor-arg name="expiration" index="1" value="0"/>
                <!-- @CacheEvict(..., "allEntries" = true) doesn't work -->
                <constructor-arg name="allowClear" index="2" value="false"/>
            </bean>
        </set>
    </property>

</bean>
<bean name="defaultCache" class="com.google.code.ssm.CacheFactory">
    <property name="cacheName" value="defaultCache"/>
    <property name="cacheClientFactory">
        <bean name="cacheClientFactory"  class="com.google.code.ssm.providers.xmemcached.MemcacheClientFactoryImpl"/>
    </property>
    <property name="addressProvider">
        <bean class="com.google.code.ssm.config.DefaultAddressProvider">
            <property name="address" value="127.0.0.1:11211"/>
        </bean>
    </property>
    <property name="configuration">
        <bean class="com.google.code.ssm.providers.CacheConfiguration">
            <property name="consistentHashing" value="true"/>
        </bean>
    </property>
  </bean>

я также добавляю simple-spring-memcached-3.5.0.jar и spymemcache.jar, spymemcache-provider.jar в папку lib. но когда я запускаю свой проект, возникает это исключение:

 Cannot find class **[net.nelz.simplesm.config.MemcachedClientFactory]** for bean with name 'memcachedClientFactory' defined in ServletContext resource [/WEB-INF/simplesm-context.xml]; nested exception is java.lang.ClassNotFoundException: net.nelz.simplesm.config.MemcachedClientFactory

person Emil    schedule 03.11.2014    source источник


Ответы (2)


вы должны добавить lib для этого класса.

person Hadi J    schedule 03.11.2014
comment
Это не дает ответа на вопрос. Чтобы подвергнуть критике или запросить разъяснения у автора, оставьте комментарий под его сообщением — вы всегда можете прокомментировать свои собственные сообщения, и как только у вас будет достаточно репутация, вы сможете комментировать любой пост. - person Nilesh; 03.11.2014
comment
потому что моя репутация низкая. - person Hadi J; 03.11.2014
comment
Я думаю, что вы можете дать комментарии, чтобы ответить сейчас. - person Nilesh; 03.11.2014

Похоже, у вас также есть старая версия Simple Spring Memcached в вашем пути к классам. Класс net.nelz.simplesm.config.MemcachedClientFactory больше не доступен в 3.x. Проверьте свой путь к классам и удалите все артефакты Simple Spring Memcached старше 3.5.0.

person ragnor    schedule 04.11.2014
comment
я удаляю все файлы simple-spring-memcached старше 3.5.0. но исключение еще происходит. Вызвано: org.springframework.beans.factory.CannotLoadBeanClassException: не удается найти класс [net.nelz.simplesm.config.MemcachedClientFactory] для bean-компонента с именем memcachedClientFactory, определенным в ресурсе ServletContext [/WEB-INF/simplesm-context.xml] ; вложенным исключением является java.lang.ClassNotFoundException: net.nelz.simplesm.config.MemcachedClientFactory - person Emil; 04.11.2014
comment
что такое simplesm-context.xml и зачем его использовать? - person Emil; 04.11.2014
comment
simplesm-context.xml содержит определение bean-компонентов, используемых Simple Spring Memcached. По какой-то причине в вашем случае он указывает на какой-то старый simplesm-context.xml (из версии 1.x или 2.x). Проверьте свой путь к классам и убедитесь, что файл доступен только в simple-spring-memcached-3.5.0.jar - person ragnor; 04.11.2014
comment
я удаляю все ssm старше 3.5.0. моя папка lib: uploadimage.ro/img.php?image=2079_222_b35x.png - person Emil; 04.11.2014
comment
Я предполагаю, что ваше приложение распространяется как война. Если это так, распакуйте содержимое войны и используйте инструмент ОС, чтобы найти simplesm-context.xml файл в распакованной директории. Убедитесь, что инструмент будет искать также все архивы (jar-файлы). Может быть, вы скопировали файл в папку WEB-INF? - person ragnor; 04.11.2014
comment
я распаковываю его. uploadimage.ro/img.php?image=7744_unpak_dxar.png, но не нашел com.google.code.ssm.spring.SSMCacheManager в нем.почему? - person Emil; 04.11.2014
comment
Я добавляю этот файл jar в lib xmemcached-provider-3.1.0.jar, xmemcached-2.0.0.jar, spring-cache-3.0.2.jar, и никаких исключений не возникает. но я думаю, что кеширование не работает. Почему? - person Emil; 04.11.2014
comment
SSMCacheManager находится в spring-cache-3.5.0.jar (это банка SSM, а не Spring), здесь вы можете найти его. Используйте maven для управления своими зависимостями. Используйте последнюю версию SSM 3.5.0 - person ragnor; 04.11.2014