A. 如果您使用 Maven,调试冲突 jar 的有用方法是:
mvn dependency:tree
例如,对于一个例外:
java.lang.SecurityException: class "javax.servlet.HttpConstraintElement"'s signer information does not match signer information of other classes in the same package
我们的确是:
mvn dependency:tree|grep servlet
它的输出:
[INFO] +- javax.servlet:servlet-api:jar:2.5:compile
[INFO] +- javax.servlet:jstl:jar:1.2:compile
[INFO] | +- org.eclipse.jetty.orbit:javax.servlet.jsp:jar:2.2.0.v201112011158:compile
[INFO] | +- org.eclipse.jetty.orbit:javax.servlet.jsp.jstl:jar:1.2.0.v201105211821:compile
[INFO] | +- org.eclipse.jetty.orbit:javax.servlet:jar:3.0.0.v201112011016:compile
[INFO] +- org.eclipse.jetty:jetty-servlet:jar:9.0.0.RC2:compile
显示冲突的 servlet-api 2.5 和 javax.servlet 3.0.0.x。
B. 其他有用的提示(如何调试安全异常以及如何排除 Maven 部门)在Signer information does not match问题中。