首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java.lang.VerifyError

Java.lang.VerifyError
EN

Stack Overflow用户
提问于 2010-08-09 16:29:41
回答 2查看 4.6K关注 0票数 0

我在我的J2EE容器中偶尔得到下面的错误。有时容器正在启动,没有任何问题,而有时容器无法启动,因为这个错误,以前有没有人看到过这个错误...?可能的原因是什么?它是否涉及到任何类加载器/安全问题?

代码语言:javascript
复制
java.lang.VerifyError: (class: com/rsa/authagent/authapi/realmstat/AUTHav, method: a signature: (Lcom/rsa/authagent/authapi/authmsg/AUTHa0;)V) catch_type not a subclass of Throwable
        at java.lang.Class.getDeclaredFields0(Native Method)
        at java.lang.Class.privateGetDeclaredFields(Class.java:2259)
        at java.lang.Class.getDeclaredField(Class.java:1852)
        at java.io.ObjectStreamClass.getDeclaredSUID(ObjectStreamClass.java:1582)
        at java.io.ObjectStreamClass.access$700(ObjectStreamClass.java:52)
        at java.io.ObjectStreamClass$2.run(ObjectStreamClass.java:408)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.io.ObjectStreamClass.<init>(ObjectStreamClass.java:400)
        at java.io.ObjectStreamClass.lookup(ObjectStreamClass.java:297)
        at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:531)
        at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1552)
        at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1466)
        at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1699)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
        at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1634)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1299)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
        at com.rsa.authagent.authapi.realmstat.AUTHi.j(Unknown Source)
        at com.rsa.authagent.authapi.realmstat.AUTHi.<init>(Unknown Source)
        at com.rsa.authagent.authapi.realmstat.AUTHh.<init>(Unknown Source)
        at com.rsa.authagent.authapi.realmstat.AUTHg.<init>(Unknown Source)
        at com.rsa.authagent.authapi.AuthSessionFactory.a(Unknown Source)
        at com.rsa.authagent.authapi.AuthSessionFactory.<init>(Unknown Source)
        at com.rsa.authagent.authapi.AuthSessionFactory.getInstance(Unknown Source)
        at netx.esf.authentication.rsa.service.RsaAuthenticationServiceImpl.instantiateRsaAPI(RsaAuthenticationServiceImpl.java:1050)
        at netx.esf.authentication.rsa.service.RsaAuthenticationServiceImpl.start(RsaAuthenticationServiceImpl.java:73)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at arch.service.beans.RepBasedServiceBean.onMessage(RepBasedServiceBean.java:108)
        at arch.service.beans.RepBasedServiceImpl.onMessage(RepBasedServiceImpl.java:202)
        at arch.service.beans.RepBasedServiceImpl.message(RepBasedServiceImpl.java:229)
        at arch.CORBA.service.ServicePOA.local_message(ServicePOA.java:188)
        at arch.CORBA.Transport.sendLocalRequest(Transport.java:447)
        at arch.transport.StubProxy.send_managed_request(StubProxy.java:364)
        at arch.transport.StubProxy.invoke(StubProxy.java:205)
        at $Proxy15.start(Unknown Source)
        at arch.service.beans.RepositoryBasedServiceFactory.startDeployable(RepositoryBasedServiceFactory.java:423)
        at arch.service.beans.ServiceContainer$ServiceStarter.run(ServiceContainer.java:1392)
        at arch.service.beans.ServiceContainer$ThreadPool._run(ServiceContainer.java:2934)
        at arch.util.ThreadPool._runLoopBody(ThreadPool.java:213)
        at arch.util.ThreadPool._runForThread(ThreadPool.java:230)
        at arch.util.ThreadPool.access$000(ThreadPool.java:3)
        at arch.util.ThreadPool$1.run(ThreadPool.java:95)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-08-09 17:47:30

AUTHav.class已损坏(有时?)。显然,声明一些方法是为了抛出一些不是Throwable的子类的东西。通常不应该发生这种情况,因为Java编译器会检测到该问题并报告错误。但可能类文件在运行时被修改/检测,甚至生成,这会引入零星的错误。或者存在命名冲突,加载的类偶尔会看到一个不同的非Throwable类,而不是预期的类。

如果AUTHav.class包含在某些归档中,您可以查看字节代码(使用javap或反编译器),并检查是否发现具有可疑throws参数的方法。

所以字节码被混淆了..。那么它可能是--这只是一个猜测--您的J2EE容器中有多个版本的库。当类被混淆时,类名AUTHa7和/或AUTHa1有可能被用于不同版本的库中的不同(原始)类。然后,如果类加载器在错误的时间拿起了两个或可能是错误的一个,这种情况可能会发生,AUTHa7和/或AUTHa1在运行时不是异常...

票数 2
EN

Stack Overflow用户

发布于 2010-08-09 23:05:11

我的猜测是:错误的硬件,特别是RAM,导致JVM得到损坏的字节码。通常它会导致彻底的JVM崩溃,但这确实是一种值得研究的可能性:

Memtest86+

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3438404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档