您的位置:首页 > 移动开发

Hibernate 二级缓存 Snappy 报错,提示 maxCompressedLength(I)I

2016-04-27 16:20 543 查看
最近项目开发过程中遇到了一个问题:

应用启动的时候并没有报错,可以正常进入业务界面,但是点击登录等操作的时候就会报错,错误信息 

         java.lang.UnsatisfiedLinkError: org.xerial.snappy.SnappyNative.maxCompressedLength(I)I,

        在网上搜了一下发现每个 Snappy 报错所抛出的底层代码都不一样。

再追踪一下错误信息,发现是Hibernate抛出来的。

有一种临时的解决方式是禁用Hibernate的二级缓存,但是试了几次以后发现这种方式并不能从根本上来解决问题。

项目组里面其他同事并没有出现这个问题,所以我这个问题可能不具有共性。

那么Hibernate是在哪个地方引用了这个jar包呢?

通过查看pom.xml文件找到jar包的依赖关系

原先的snappy并不是这个版本,在nexus上看到有好几个版本的snappy,而且当前这个是比较老的版本。

所以就抱着试一试的心态修改了 avro 的 pom.xml 文件,这个地方还有一个小问题:

默认的snappy版本是1.0.4.1,这个版本号的值是从hibernate-search-parent这个pom文件中取出来的,然而实际上这个包并没有引进来,可能是因为我们的nexus服务器上没有这个jar包的原因,这就导致了改了hibernate-search-parent的pom文件然而还是不起作用。

直接改了avro的pom文件,将版本号加上去就可以了。

这样就没有继续报错了 : )
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  hibernate 缓存 Snappy