现象:A系统缓存采用的ehcache,在测试环境用tomcat启用突然报“net.sf.ehcache.CacheException: java.io.StreamCorrupted”错误,导致系统启动有问题。
    原因:经过查询资料找到原因是在同一个tomcat下部署了两个系统,而且这两个系统的缓存都是用的ehcache,并且缓存到磁盘的路径(ehcache 路径设置的是同一个)设置是同一个,导致此错误发生。
    解决办法:修改diskStore path,使两个系统的path路径不相同就可以了。
    PS:ehcache的原理是将所有的value值序列化后存储到本地磁盘,将一个与之对应的key值存到内存中,建立两者关联。这样就能根据key查找磁盘中的value了,当value值找不到时,或者序列化异常时就出现了你的问题。出现原因一般是这样子:value默认存储到tomcat临时目录tmp下(不同服务器不同系统该路径不同),当tomcat下多个实例同时往这个目录下写入缓存时,就容易出现问题了。解决方案是指定下diskStore 目录为不同的目录。
    参考网址:
    https://blog.csdn.net/LSSSSSS/article/details/51248931