更新一下
由于我的代码引入了spark-sql,他自己带有hadoop的传递依赖,而我又自己引入了和传递依赖不同版本的hadoop,所以冲突了
可以在spark-sql依赖中加入标签排除冲突的hadoop依赖,如图:
——————————————————————————————————————
原文:
今天写代码时报错
java.lang.SecurityException: class "javax.servlet.FilterRegistration"'s signer information does not match signer information of other classes in the same package
翻译一下:
java.lang.SecurityException:类“ javax.servlet.FilterRegistration”的签名者信息与同一包中其他类的签名者信息不匹配
啥?????
最后找了一圈,原因是依赖里面的javax.servlet类冲突了,可能你的pom文件里面引入了两个依赖都有这个类,但程序不知道该访问哪一个类所以出错,所以把pom.xml文件里除去冲突的依赖就行。
具体步骤:
1.在idea的Teminal中运行
mvn -f=pom.xml dependency:tree
这个命令得到项目的依赖树
2.在结果里面Ctrl+F搜索javax.servlet
可以看出,是hadoop里面有个javax.servlet,spark里面也有,我这个项目气候没用到hadoop 的依赖
3.去Pom文件去除冲突的多余依赖
然后Reimport一下
问题解决,办法仅做参考