3

我在使用 hibernate-memcached 1.3 的 Heroku cedar 上遇到奇怪的错误:

抓到 CNFE 解码 438 字节数据 java.lang.ClassNotFoundException: org.hibernate.cache.entry.CacheEntry

不知何故,hibernate-memcached 1.3 无法与 spymemcached 2.8.1 及更高版本一起使用。如果我在我的 pom.xml 中明确列出 spymemcached 2.7.3 或者我按照提供的设置 spymemcached 范围都没关系 - 我总是得到 CNFE

当我升级到 spymemcached 2.8.1 时,我能够在本地复制这个问题

谢谢。

4

1 回答 1

2

如果您使用 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 运行它就可以了。

于 2012-12-17T05:22:55.503 回答