如果您使用 webapp-runner.jar 来运行您的应用程序,那么是的,您是对的:jar 文件中包含 spymemcached 类文件以支持会话数据的缓存。
根据webapp-runner的说法,这适用于 7.0.29.1 或更高版本。
不过,我能找到的不包含 spymemcached 类的最新版本是 7.0.22.1。
我怀疑您可以通过将 webapp-runner 降级到版本 7.0.22.1 来解决您的问题。
至少当我遇到类似问题时,这对我有用,得到如下异常:
org.springframework.beans.factory.CannotLoadBeanClassException:
Error loading class [net.spy.memcached.spring.MemcachedClientFactoryBean]
for bean with name 'memcachedClient' defined in class path resource [memcached-context.xml]:
problem with class file or dependent class;
nested exception is java.lang.NoClassDefFoundError: org/springframework/beans/factory/FactoryBean
这些问题仅在我使用 webapp-runner.jar 运行我的 war 文件时发生。从 Eclipse 中或使用本地普通的 Tomcat 7 运行它就可以了。