从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

相关文章

摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠...
摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠...
今天犯了个错:“接口变动,伤筋动骨,除非你确定只有你一个...
Writer :BYSocket(泥沙砖瓦浆木匠)微 博:BYSocket豆 瓣:...
本文目录 线程与多线程 线程的运行与创建 线程的状态 1 线程...