从Oracle 10g上的webapp链接“链接javax / xml / namespace / QName类时违反了加载器约束”

前端之家收集整理的这篇文章主要介绍了从Oracle 10g上的webapp链接“链接javax / xml / namespace / QName类时违反了加载器约束”前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我们有一个可以部署在许多应用服务器上的Web应用程序,包括Oracle 10g.但是,在该平台上,我们遇到了类路径问题. webapp使用JAXB 2,但Oracle 10g附带JAXB 1,这导致错误.为了解决这些问题,我们将Oracle配置为更喜欢我们的webapp中的类,但现在我们在尝试实例化JAXB上下文时遇到了上述错误.

查看“加载器约束违反”异常 – 当一个已经加载了一个类加载器的类试图访问同一个包中的包私有但由不同的类加载器加载的类时,它似乎被抛出.我已经尝试删除我们的webapp中包含javax.xml.namespace.QName的任何jar,并且已经验证它是正在被拾取的Oracle中包含的实例,但是仍然会发生错误.有任何想法吗?

(这是关于10g和JAXB 2的earlier question的后续内容.)

最佳答案
这个类是WS Java库的一半.从多个类加载器加载它然后比较它们非常容易,导致LinkageError.

跟踪此问题的一种有效(但是大锤)技术是从Java源修改Classloader以转储在加载时从特定类加载的jar,然后使用修改后的版本添加bootclasspath:

-Xbootclasspath / P:/路径/到/ hackedBin

原文链接:/java/437539.html

猜你在找的Java相关文章