Oracle Java类的WebSphere NoClassDefFoundError

时间:2016-09-15 15:25:01

标签: java classpath noclassdeffounderror jaxp ibm-jdk

我为Oracle的rt.jar中存在的类获取NoClassDefFoundError,但似乎并不存在于WebSphere的rt.jar中。

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

我对WebSphere的理解是,在WebSphere的Java安装中应该存在本机java类,但事实并非如此。

奇怪的是,它在一个环境中工作而在另一个环境中不起作用 - 但是rt.jar文件都没有NodeSet类。我认为这两者都不起作用,因为它们都将WebSphere的JAVA_HOME环境变量设置为WebSphere java文件夹。

有没有人有任何想法可能会发生在这里? WebSphere是否仅使用WebSphere环境变量中的java路径?或者它也使用服务器的环境变量?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

当你在classpath或bootclasspath中有陈旧的jar时,通常会发生这种问题。在失败的环境中,异常是从一个可以从陈旧的jar加载的类抛出的,它需要一个Oracle XML实现。