10
|
Jim Garrison · 技术社区 · 15 年前 |
![]() |
1
14
您的war还包括org.xml.sax或org.w3c.dom类,然后您引用了应用程序外部的类,该类也引用了这些类。这将设置一个场景,其中应用程序类加载器对同一类的两个实例具有可见性,这是一个链接错误。 例如,如果应用程序使用javax.xml.bind.unmarshaller.unmarshall(inputsource),那么将从JDK加载unmarshaller,并且unmarshaller类只对JDK inputsource具有可见性。当应用程序创建其inputsource时,它将从war加载类(因为“app first”策略),然后应用程序将尝试将war inputsource的实例传递给jdk unmarshaller,后者只能接受jdk inputsource的实例。 有两种解决方案:
根据我的经验,链接错误很难被跟踪,因为JVM提供了关于什么导致添加链接的糟糕信息。我通常启用类加载器跟踪,重现问题,然后向后走,直到找到一个从应用程序外部加载的类,“听起来像”它可能引用了一个已知存在于应用程序内部的类。 |
![]() |
2
0
我们的问题发生在8.5。 在我们的Web应用程序中,有一个由cxf生成的Web服务客户机。没有问题。 当我们在tika解析器中添加mime类型检测时,就出现了这个问题。 我们排除了三个依赖项:
一旦它们被排除在外,我们的应用程序就成功启动了。 |
![]() |
3
0
可能太迟了,但我们解决了这个问题,在server.xml中删除了这一行: JAXB-2.1 |
![]() |
4
-1
禁用字节码验证java.lang.verify错误- 运行时未选中异常 一旦类文件加载到WebSphere JVM中,那么字节代码变量化就是下一个过程。在字节代码验证期间,如果我们的类违反了JVM约束,那么就会出现此错误。 禁用字节码验证。去
管理控制台
在jvm中,参数传递以下字符串
在工作区中打开applicationDeploymentDescriptor XML文件,转到Deployment选项卡,选择Parent_Last for War,以及第一个选项。这将停止XML验证错误。 |
![]() |
5
-2
是的,没错,这是你看到这种行为的唯一途径。我可以建议你看一下“你真的有班级装载机吗?”谈谈,因为你的问题没有一个简单的答案。 http://www.slideshare.net/guestd56374/do-you-really-get-class-loaders http://www.parleys.com/#sl=2&st=5&id=1585 |
![]() |
Raphael · 确定未能加载的类文件的路径 7 年前 |
![]() |
Guest · 常量池和方法区域的映射 7 年前 |
![]() |
flow2k · 解析扩展了接口并结束了一个潜在的无限循环 7 年前 |
|
Pneumono · 在运行时更改系统类加载器 8 年前 |
![]() |
user3250354 · 使用Java类加载器获取堆栈跟踪 9 年前 |
![]() |
DoNuT · 通过Classloader加载Maven工件 9 年前 |