前はこの記事の方法で解決していたのだが、今は解決できなくなったので参考程度にどうぞ。
概要
EHCacheをPlayで使っていると、dev-modeでreloadが掛かったときにClassNotFoundExceptionが出るという問題がある。
原因
Playの特殊なClassLoaderの使い方にある。
が詳しい。
解決方法
Cache生成時に使用するClassLoaderが渡せる。
val conf = new CacheConfiguration(cacheName, maxEntries)
.setClassLoader(env.classLoader)
val cache = new Cache(conf)
渡すClassLoaderはplay.api.Environment
をDIから持ってきてclassLoaderを呼べばいい。