WebSphere Class NoClassDefFoundError for Oracle Java


I'm getting a NoClassDefFoundError for a class that exists in Oracle's rt.jar, but doesn't seem to exist in WebSphere's rt.jar.

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

My understanding of WebSphere is that native java classes should exist in WebSphere's java installation, but that doesn't appear to be the case.

What's strange is that this works in one environment and doesn't work in another - but neither of the rt.jar files have the NodeSet class. I would think this wouldn't work in either, as both have the WebSphere's JAVA_HOME environment variable set to the WebSphere java folder.

Does anybody have any ideas what might be happening here? Does WebSphere only use the java path in the WebSphere environment variable? Or does it use the server's environment variables as well?

WebSphere (especially traditional WebSphere) uses an IBM JDK.

The IBM JDK and the Oracle JDK differ in terms of XML providers. Information about using XML with the IBM JDK is here (note this is for JDK 8, may have to go back a bit from here):