java.lang.SecurityException: signer information does not match signer information of other classes in the same package

user613114 picture user613114 · Jun 24, 2014 · Viewed 21.1k times · Source

We have renewed security certificates in our java applications and suddenly we have started receiving below mentioned exception:

java.lang.SecurityException: class "org.hibernate.cfg.Configuration"'s signer information does not match signer information of other classes in the same package
    at java.lang.ClassLoader.checkCerts(ClassLoader.java:806) [rt.jar:1.6.0_37]
    at java.lang.ClassLoader.preDefineClass(ClassLoader.java:487) [rt.jar:1.6.0_37]
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:625) [rt.jar:1.6.0_37]
    at java.lang.ClassLoader.defineClass(ClassLoader.java:615) [rt.jar:1.6.0_37]
    at org.jboss.modules.ModuleClassLoader.doDefineOrLoadClass(ModuleClassLoader.java:344) 

We use ANT tool to build our code. I found some links over the SO describing the similar issue. Bur I am not sure how to resolve issue which is related to hibernate jars. Please let me know, if you have any idea.

Answer

Radu picture Radu · Oct 8, 2014

Might be that your class org.hibernate.cfg.Configuration doesn't get loaded from the jar that you're expecting to do so.

Had the same problem when our program was loading some utility classes for JavaMail and it turned out that after switching over to Maven for project configuration management, some of our Jetty dependencies were including the jar javax.mail.glassfish, thus conflicting with the explicit mail dependencies.

To find out which jars are actually loaded when launching the java program from console, you can use the -verbose:class option when starting the Java VM (as described here).