问题背景:
jackson2.9.9.1之前存在安全漏洞,需要升级版本。项目中使用的是2.6.1.
项目使用的是
漏洞说明:
http://www.cnnvd.org.cn/web/xxk/ldxqById.tag?CNNVD=CNNVD-201906-867
升级版本:2.10.3
问题描述:
第一个问题:启动时异常如下:
Unable to process Jar entry [module-info.class] from Jar [jar:file:/D:/STS/Workspaces/Cloudview/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/task-starter/WEB-INF/lib/jackson-databind-2.6.1.jar!/] for annotations
解决方法:
第一种:
在catalina.properties文件中jarsToSkip属性里新增该jar包。经测试不好使。
第二种:
删除jar包中的jackson-databind-2.6.1.jar.这个方法好使。
第三种:
同事的服务不删除也时可以正常使用的,经调查,升级tomcat版本可以解决这个问题。
第二个问题:服务运行时报ObjectMapper类找不到,抛出异常:NoClassDefFoundError
这个是由于类加载的时候由于版本问题没有加载成功,在执行的时候去加载这个类,因为类只加载一次,在加载的时候找不到就会报NoClassDefFoundError错误。
解决办法:
同时升级jackson相关的所有jar包:
jackson-databind-2.10.3.jar
jackson-core-2.10.3.jar
jackson-annotations-2.10.3.jar
jackson-dataformat-xml-2.10.3.jar
升级之后服务执行正常。