1

我得到一个存在于 Oracle rt.jar 中的类的 NoClassDefFoundError,但似乎不存在于 WebSphere 的 rt.jar 中。

java.lang.NoClassDefFoundError: com/sun/org/apache/xpath/internal/NodeSet

我对 WebSphere 的理解是,原生 java 类应该存在于 WebSphere 的 java 安装中,但似乎并非如此。

奇怪的是,这在一种环境中有效,而在另一种环境中无效——但 rt.jar 文件都没有 NodeSet 类。我认为这两者都行不通,因为两者都将 WebSphere 的 JAVA_HOME 环境变量设置为 WebSphere java 文件夹。

有人知道这里可能会发生什么吗?WebSphere 是否只使用 WebSphere 环境变量中的 java 路径?还是它也使用服务器的环境变量?

4

2 回答 2

1

WebSphere(尤其是传统的 WebSphere)使用 IBM JDK。

IBM JDK 和 Oracle JDK 在 XML 提供程序方面有所不同。有关在 IBM JDK 中使用 XML 的信息在这里(注意这是针对 JDK 8 的,可能需要从这里返回一点):

https://www.ibm.com/support/knowledgecenter/SSYKE2_8.0.0/com.ibm.java.win.80.doc/user/xml/using_xml.html

于 2016-09-15T15:45:46.293 回答
0

当您在类路径或引导类路径中有陈旧的 jar 时,通常会发生这种问题。在失败的环境中,异常是从一个可以从陈旧的 jar 加载的类中引发的,并且它需要一个 Oracle XML 实现。

于 2016-11-16T16:21:31.133 回答