最近项目开发过程中遇到了一个问题:
应用启动的时候并没有报错,可以正常进入业务界面,但是点击登录等操作的时候就会报错,错误信息
java.lang.UnsatisfiedLinkError: org.xerial.snappy.SnappyNative.maxCompressedLength(I)I,
在网上搜了一下发现每个 Snappy 报错所抛出的底层代码都不一样。
再追踪一下错误信息,发现是Hibernate抛出来的。
有一种临时的解决方式是禁用Hibernate的二级缓存,但是试了几次以后发现这种方式并不能从根本上来解决问题。
项目组里面其他同事并没有出现这个问题,所以我这个问题可能不具有共性。
那么Hibernate是在哪个地方引用了这个jar包呢?
通过查看pom.xml文件找到jar包的依赖关系
原先的snappy并不是这个版本,在nexus上看到有好几个版本的snappy,而且当前这个是比较老的版本。
所以就抱着试一试的心态修改了 avro 的 pom.xml 文件,这个地方还有一