3

hibernate-memcached 1.3 を使用すると、Heroku cedar で奇妙なエラーが発生します。

438 バイトのデータをデコードする CNFE をキャッチしました 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

これらの問題は、war ファイルを webapp-runner.jar で実行したときにのみ発生しました。Eclipse 内から実行するか、ローカルの単純なバニラ Tomcat 7 を使用して実行すると、問題なく動作しました。

于 2012-12-17T05:22:55.503 に答える