users@jax-ws.java.net

Re: Please help java.lang.NoClassDefFoundError: com.sun.org.apache.xerces.internal.dom.DocumentImpl

From: Martin Grebac <martin.grebac_at_oracle.com>
Date: Mon, 12 Dec 2011 08:30:19 +0100

Hi,
 while running on IBM AIX you should either:

  a) add Oracles's JAXP implementation jars to classpath, or
  b) remove the saaj-impl.jar from classpath in order to let JAXWS use
the IBM SAAJ implementation

  MartiNG


On 12/12/2011 03:11 AM, Jon Blanton wrote:
> Source for SOAPDocumentImpl
> (http://java.net/projects/saaj/sources/svn/show/branches?rev=395)
> indeed imports com.sun.org.apache.xerces.internal.dom.DocumentImpl; !!
> I am a bit baffled now. Does this mean I cannot use
> jax-ws.java.net/2.2.5 with IBM JDK because it's xerces is under
> org.apache.xerces and not under com.sun.org.apache.xerces?
>
>
> import com.sun.org.apache.xerces.internal.dom.DocumentImpl;
> public class SOAPDocumentImpl extends DocumentImpl implements
> SOAPDocument {
>
>
> ------------------------------------------------------------------------
> From: dcx20_at_live.com
> To: issues_at_jax-ws.java.net; users_at_jax-ws.java.net
> Subject: Please help java.lang.NoClassDefFoundError:
> com.sun.org.apache.xerces.internal.dom.DocumentImpl
> Date: Sat, 10 Dec 2011 23:49:46 -0800
>
>
> Please help me with the following exception. The example works fine
> with Sun JDK 1.5, but not with IBM JDK. soapTest.zip
>
> All libraries are downloaded from http://jax-ws.java.net/2.2.5/
>
> Attachment 1: soapTest.zip Example that works on Sun jdk.
> windowsOut.log file contains version, jvm properties, and correctly
> read SOAP message.
> Attachment 2: soapTest_ibmJdk.zip The same example fails on IBM JDK.
> out.txt contains the stacktrace. provides version and jvm properties.
> java.lang.NoClassDefFoundError:
> com.sun.org.apache.xerces.internal.dom.DocumentImpl
> at java.lang.ClassLoader.defineClassImpl(Native Method)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:267)
> at
> java.security.SecureClassLoader.defineClass(SecureClassLoader.java:151)
> at java.net.URLClassLoader.defineClass(URLClassLoader.java:600)
> at java.net.URLClassLoader.access$400(URLClassLoader.java:124)
> at java.net.URLClassLoader$ClassFinder.run(URLClassLoader.java:1055)
> at
> java.security.AccessController.doPrivileged(AccessController.java:274)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:492)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:650)
> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:616)
> at
> com.sun.xml.messaging.saaj.soap.SOAPPartImpl.<init>(SOAPPartImpl.java:106)
> at
> com.sun.xml.messaging.saaj.soap.ver1_1.Message1_1Impl.getSOAPPart(Message1_1Impl.java:90)
> at
> com.sun.xml.messaging.saaj.soap.MessageImpl.init(MessageImpl.java:407)
> at
> com.sun.xml.messaging.saaj.soap.MessageImpl.<init>(MessageImpl.java:316)
> at
> com.sun.xml.messaging.saaj.soap.ver1_1.SOAPMessageFactory1_1Impl.createMessage(SOAPMessageFactory1_1Impl.java:74)
> at soapTest.TestSaaj.main(TestSaaj.java:59)
>
> As you can see, org.apache classes are used by the IBM JDK by default,
> but com.sun.xml.messaging.saaj.soap.MessageImpl tries to access
> com.sun.org.apache.xerces.internal.dom.DocumentImpl. I can't figure
> out why. Am I missing some setting somewhere? Please help.
>
> DocumentBuilderFactory=org.apache.xerces.jaxp.DocumentBuilderFactoryImpl
> DocumentBuilder=org.apache.xerces.jaxp.DocumentBuilderImpl
> Documentr=org.apache.xerces.dom.DocumentImpl
> SoapMessageFactory=com.sun.xml.messaging.saaj.soap.ver1_1.SOAPMessageFactory1_1Impl
> Caused by: java.lang.NoClassDefFoundError:
> com.sun.org.apache.xerces.internal.dom.DocumentImpl
>
> Thanks
> Jon

-- 
Martin Grebac, GlassFish/Metro/JAXWS/JAXB/Tooling at Oracle
http://blogs.oracle.com/mgrebac
ICQ: 93478885