栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

WAS 6.1 java.lang.VerifyError:违反了类加载约束

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

WAS 6.1 java.lang.VerifyError:违反了类加载约束

您的WAR还包括org.xml.sax或org.w3c.dom类,然后您引用的应用程序之外的类也引用了这些类。这将建立一个方案,您的应用程序类加载器可以看到同一类的两个实例,这是一个链接错误。

例如,如果您的应用程序使用javax.xml.bind.Unmarshaller.unmarshal(InputSource),则将从JDK加载Unmarshaller,而Unmarshaller类仅对JDK
InputSource具有可见性。当您的应用程序创建其InputSource时,它将从WAR加载类(因为“应用程序优先”策略),然后您的应用程序将尝试将WAR
InputSource的实例传递给JDK Unmarshaller,后者只能接受以下形式的实例: JDK InputSource。

有两种解决方案:

  1. 从应用程序中删除所有API jar,然后使用JDK中的API jar。例如,删除包含org.xml.sax或org.w3c.dom的jar。
  2. 在WAR中包括所有引用您要引用的类的库。例如,在您的WAR中包含JAXB库的副本。

以我的经验,很难找到链接错误,因为JVM给出了导致添加链接的原因的糟糕信息。我通常启用类加载器跟踪,重现问题,然后向后走,直到我发现从应用程序外部加载的类“听起来像”,它可能引用了一个已知存在于应用程序内部的类。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/496822.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号