加载不同版本的IBM JDK XML库

时间:2011-02-11 12:16:10

标签: xml java

我们正在使用Axis在Sun JDK中调用Web服务,但是当我们更改为IBM JDK时,我们会收到XML库的错误。

Sun的JDK将XML组件的实现重新打包为com.sun。*,并且使用工厂机制很容易替换它们。 IBM的JDK不会发生这种情况,然后无法用相同类的较新版本替换实现(在应用程序类之前加载JDK类)。

一种解决方案是使用-Xbootclasspath/p:来覆盖JDK类,但有没有“标准”方法告诉IBM的JVM加载更新版本的XML库而不是默认值?

1 个答案:

答案 0 :(得分:0)

选择使用哪个版本的XML组件的最简单方法是通过JAXP / TrAX API访问它们,这是可移植的工厂机制。例如,如果使用javax.xml.parsers包来访问解析器,则可以通过设置系统属性,配置文件或服务API来控制加载哪个实际解析器工厂类。

我还注意到,与IBM的JDK相比,Sun的JDK在其XML支持方面已经臭名昭着。几乎总是需要用Apache的更新版本替换Sun软件包。使用IBM处理器的情况要少得多; IBM在积极维护代码方面做得更好。 (事实上​​,IBM多年来一直是Apache XML解析器和XSLT / XPath处理器的主要贡献者。)

您没有告诉我们错误是什么,或者您使用的是哪个版本的IBM JDK,但我公认的严重偏见是IBM代码可能更正确而不是更少。