R. Se você usa o maven, uma maneira útil de depurar frascos colidindo é:
mvn dependency:tree
Por exemplo, para uma exceção:
java.lang.SecurityException: class "javax.servlet.HttpConstraintElement"'s signer information does not match signer information of other classes in the same package
nós fazemos:
mvn dependency:tree|grep servlet
Sua saída:
[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
mostra servlet-api 2.5 em conflito e javax.servlet 3.0.0.x.
B. Outras dicas úteis (como depurar a exceção de segurança e como excluir os deuses) estão na pergunta em Informações do Signatário não coincidem .