我们在Java应用程序中更新了安全证书,突然之间我们开始收到以下提到的异常:
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)
我们使用ANT工具来构建代码。我在SO上找到了描述类似问题的链接。 Bur我不确定如何解决与休眠jar相关的问题。如果您有任何想法,请告诉我。
最佳答案
可能是您的类org.hibernate.cfg.Configuration
没有从您期望这样做的jar中加载。
当我们的程序为JavaMail加载一些实用程序类时遇到了同样的问题,结果发现,切换到Maven进行项目配置管理后,我们的一些Jetty依赖项包括jar javax.mail.glassfish
,因此与显式邮件依赖项发生冲突。
要确定从控制台启动Java程序时实际加载了哪些jar,可以在启动Java VM时使用-verbose:class
选项(如here所述)。
关于java - java.lang.SecurityException:签名者信息与同一包中其他类的签名者信息不匹配,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24386463/