java - 如何调试 DOMImplementation 版本上的 java 依赖失败

标签 java xml dom dependencies

我有一段代码可以单独工作,但在客户端项目中使用依赖项失败。调用

文档 doc = impl.createDocument(null,null,null);

失败(看起来像 http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4913257 处的问题)。我的单元测试中的“impl”实例是 com.sun.org.apache.xerces.internal.dom.DOMImplementationImpl 的实例。在我的客户端代码中,它是 org.apache.xerces.dom.DOMImplementationImpl 的实例。

如何追溯这种依赖关系?我尝试手动检查类路径中的所有类和 jar 文件,但找不到 org.apache.xerces.dom.DOMImplementation 的提供者。是否可以观察类何时加载(以及为什么)?如何选择特定的 DOM 实现?我现在可以强制 jvm 使用特定的实现吗?

最佳答案

“com.sun.org.apache...”包中的实现是打包为 JRE 一部分的 Xerces。以“org.apache...”开头的版本是 Apache 的独立发行版。它们可以在同一个应用程序中一起运行,但可能会变得非常困惑。

您的客户项目似乎包含独立 apache 发行版的副本(可能是 xercesImpl.jar)。让他们rem、ove它并查看它是否开始使用内置的JRE代码。

关于java - 如何调试 DOMImplementation 版本上的 java 依赖失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1074997/

相关文章:

java - 有人可以解释一下 struts2 XSL ResultType 是如何工作的吗?

python - 需要使用 ElementTree 解析 XML 的帮助

xml - 在 Visual Studio 2010 中格式化 XML 的工具

javascript - 选择选项时更改选项的颜色

javascript - 如何在 IE 11 中获取 Range 对象

java - 有没有办法让 java.util.logging.LogManager 报告指定属性的所有记录器或访问属性?

java - Spring MVC 中的开发模式

javascript - document.getElementsByTagName ("*") 或 document.all

java - JFrame 在多个屏幕上的位置

c - 使用 libxml 获取节点的所有属性列表