You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Mark Leone <mi...@cox.net> on 2005/04/30 08:03:39 UTC
What's SOAP got to do with it?
I have a servlet in which I'm making a static call to
org.apache.utils.XMLUtils.newDocument(InputStream inp). Tomcat, my
servlet container, returns a class definition not found error, looking
for SOAPException. I've gone through the XMLUtils source code ( and
source code for all methods invoked by newDocument() ) over and over
again, and there's simply no reference to SOAP exception anywhere in my
processing thread. It appears only one time in the entire class, in
method getEncoding(), which cannot possibly be invoked downstream of
newDocument(). And anyway, it's certainly not one of the three
exceptions thrown by newDocument().
Something weird is going on here. Here is the stack trace returned by
Tomcat when I invoke the servlet.
java.lang.NoClassDefFoundError: javax/xml/soap/SOAPException
Proxy.ProxyServlet.handleHtmlFile(ProxyServlet.java:94)
Proxy.ProxyServlet.doGet(ProxyServlet.java:55)
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
ProxyServlet is my code, and line 94 reads
Document doc = XMLUtils.newDocument(conn.getInputStream())
conn is an instance of HttpURLConnection that was returned by
url.openConnection(), where url is an instance of URL initialized to a
valid url value.
Re: What's SOAP got to do with it?
Posted by Davanum Srinivas <da...@gmail.com>.
Mark,
use JTidy for consuming HTML it supports handling non-well-formed
documents. Another choice is CyberNeko HTML Parser
http://people.apache.org/~andyc/neko/doc/index.html based on Xerces
XNI.
-- dims
On 5/1/05, Mark Leone <mi...@cox.net> wrote:
> Yes, you're right. I didn't realize the scope of the dependencies the
> static methods in XMLUtils have on the rest of the axis code. I placed
> all the jar files from the axis distribution in the shared directory,
> and no more NCDFEs. (I moved just saaj.jar at first, but I got other
> NCDFEs, so I moved all the axis jars.)
>
> But now I'm getting fatal SAXParser errors when I try to ingest HTML
> 4.01 documents that are not well-formed XML. Xerces has implemented HTML
> DOM, but apparently there's no support for creating HTMLDocumentImpl
> objects from an InputStream serving an HTML 4.01 document.
> Jeff wrote:
>
> >Hi Mark,
> >
> >This is so obviously a classpath issue. It might be triggered through bad
> >input though. Checking that conn.getInputStream() generates well-formed
> >XML would be a good first step (dump it a file on your hard disk and drag
> >the file into a web browser).
> >
> >
> >Jeff
> >
> >
> >----- Original Message -----
> >From: "Mark Leone" <mi...@cox.net>
> >To: <ax...@ws.apache.org>
> >Sent: Saturday, April 30, 2005 9:37 AM
> >Subject: Re: What's SOAP got to do with it?
> >
> >
> >
> >
> >>Tomcat is not producing a stack trace for this event in its log files. I
> >>asked for some advice on this on the Tomcat list, and if I get a full
> >>stack trace I'll post it here. Or maybe I'll find that I have a Tomcat
> >>problem that's causing the original error as well. Thanks for offering
> >>to look at the stack trace.
> >>
> >>BTW, I tried it from my java IDE, but I don't have an IDE integrated
> >>with Tomcat, and I got a different error when I tried it- probably
> >>because I wasn't invoking from within a servlet engine.
> >>
> >>-Mark
> >>
> >>Davanum Srinivas wrote:
> >>
> >>
> >>
> >>>can u please post the whole stacktrace...
> >>>
> >>>-- dims
> >>>
> >>>On 4/30/05, Mark Leone <mi...@cox.net> wrote:
> >>>
> >>>
> >>>
> >>>
> >>>>I have a servlet in which I'm making a static call to
> >>>>org.apache.utils.XMLUtils.newDocument(InputStream inp). Tomcat, my
> >>>>servlet container, returns a class definition not found error, looking
> >>>>for SOAPException. I've gone through the XMLUtils source code ( and
> >>>>source code for all methods invoked by newDocument() ) over and over
> >>>>again, and there's simply no reference to SOAP exception anywhere in my
> >>>>processing thread. It appears only one time in the entire class, in
> >>>>method getEncoding(), which cannot possibly be invoked downstream of
> >>>>newDocument(). And anyway, it's certainly not one of the three
> >>>>exceptions thrown by newDocument().
> >>>>
> >>>>Something weird is going on here. Here is the stack trace returned by
> >>>>Tomcat when I invoke the servlet.
> >>>>
> >>>>java.lang.NoClassDefFoundError: javax/xml/soap/SOAPException
> >>>> Proxy.ProxyServlet.handleHtmlFile(ProxyServlet.java:94)
> >>>> Proxy.ProxyServlet.doGet(ProxyServlet.java:55)
> >>>> javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
> >>>> javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> >>>>
> >>>>ProxyServlet is my code, and line 94 reads
> >>>>
> >>>>Document doc = XMLUtils.newDocument(conn.getInputStream())
> >>>>
> >>>>conn is an instance of HttpURLConnection that was returned by
> >>>>url.openConnection(), where url is an instance of URL initialized to a
> >>>>valid url value.
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>
> >>>
> >>>
> >>>
> >
> >
> >
> >
>
--
Davanum Srinivas - http://webservices.apache.org/~dims/
Re: What's SOAP got to do with it?
Posted by Mark Leone <mi...@cox.net>.
Yes, you're right. I didn't realize the scope of the dependencies the
static methods in XMLUtils have on the rest of the axis code. I placed
all the jar files from the axis distribution in the shared directory,
and no more NCDFEs. (I moved just saaj.jar at first, but I got other
NCDFEs, so I moved all the axis jars.)
But now I'm getting fatal SAXParser errors when I try to ingest HTML
4.01 documents that are not well-formed XML. Xerces has implemented HTML
DOM, but apparently there's no support for creating HTMLDocumentImpl
objects from an InputStream serving an HTML 4.01 document.
Jeff wrote:
>Hi Mark,
>
>This is so obviously a classpath issue. It might be triggered through bad
>input though. Checking that conn.getInputStream() generates well-formed
>XML would be a good first step (dump it a file on your hard disk and drag
>the file into a web browser).
>
>
>Jeff
>
>
>----- Original Message -----
>From: "Mark Leone" <mi...@cox.net>
>To: <ax...@ws.apache.org>
>Sent: Saturday, April 30, 2005 9:37 AM
>Subject: Re: What's SOAP got to do with it?
>
>
>
>
>>Tomcat is not producing a stack trace for this event in its log files. I
>>asked for some advice on this on the Tomcat list, and if I get a full
>>stack trace I'll post it here. Or maybe I'll find that I have a Tomcat
>>problem that's causing the original error as well. Thanks for offering
>>to look at the stack trace.
>>
>>BTW, I tried it from my java IDE, but I don't have an IDE integrated
>>with Tomcat, and I got a different error when I tried it- probably
>>because I wasn't invoking from within a servlet engine.
>>
>>-Mark
>>
>>Davanum Srinivas wrote:
>>
>>
>>
>>>can u please post the whole stacktrace...
>>>
>>>-- dims
>>>
>>>On 4/30/05, Mark Leone <mi...@cox.net> wrote:
>>>
>>>
>>>
>>>
>>>>I have a servlet in which I'm making a static call to
>>>>org.apache.utils.XMLUtils.newDocument(InputStream inp). Tomcat, my
>>>>servlet container, returns a class definition not found error, looking
>>>>for SOAPException. I've gone through the XMLUtils source code ( and
>>>>source code for all methods invoked by newDocument() ) over and over
>>>>again, and there's simply no reference to SOAP exception anywhere in my
>>>>processing thread. It appears only one time in the entire class, in
>>>>method getEncoding(), which cannot possibly be invoked downstream of
>>>>newDocument(). And anyway, it's certainly not one of the three
>>>>exceptions thrown by newDocument().
>>>>
>>>>Something weird is going on here. Here is the stack trace returned by
>>>>Tomcat when I invoke the servlet.
>>>>
>>>>java.lang.NoClassDefFoundError: javax/xml/soap/SOAPException
>>>> Proxy.ProxyServlet.handleHtmlFile(ProxyServlet.java:94)
>>>> Proxy.ProxyServlet.doGet(ProxyServlet.java:55)
>>>> javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
>>>> javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>>>>
>>>>ProxyServlet is my code, and line 94 reads
>>>>
>>>>Document doc = XMLUtils.newDocument(conn.getInputStream())
>>>>
>>>>conn is an instance of HttpURLConnection that was returned by
>>>>url.openConnection(), where url is an instance of URL initialized to a
>>>>valid url value.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>>
>
>
>
>
Re: What's SOAP got to do with it?
Posted by Jeff <je...@cogentlogic.com>.
Hi Mark,
This is so obviously a classpath issue. It might be triggered through bad
input though. Checking that conn.getInputStream() generates well-formed
XML would be a good first step (dump it a file on your hard disk and drag
the file into a web browser).
Jeff
----- Original Message -----
From: "Mark Leone" <mi...@cox.net>
To: <ax...@ws.apache.org>
Sent: Saturday, April 30, 2005 9:37 AM
Subject: Re: What's SOAP got to do with it?
> Tomcat is not producing a stack trace for this event in its log files. I
> asked for some advice on this on the Tomcat list, and if I get a full
> stack trace I'll post it here. Or maybe I'll find that I have a Tomcat
> problem that's causing the original error as well. Thanks for offering
> to look at the stack trace.
>
> BTW, I tried it from my java IDE, but I don't have an IDE integrated
> with Tomcat, and I got a different error when I tried it- probably
> because I wasn't invoking from within a servlet engine.
>
> -Mark
>
> Davanum Srinivas wrote:
>
> >can u please post the whole stacktrace...
> >
> >-- dims
> >
> >On 4/30/05, Mark Leone <mi...@cox.net> wrote:
> >
> >
> >>I have a servlet in which I'm making a static call to
> >>org.apache.utils.XMLUtils.newDocument(InputStream inp). Tomcat, my
> >>servlet container, returns a class definition not found error, looking
> >>for SOAPException. I've gone through the XMLUtils source code ( and
> >>source code for all methods invoked by newDocument() ) over and over
> >>again, and there's simply no reference to SOAP exception anywhere in my
> >>processing thread. It appears only one time in the entire class, in
> >>method getEncoding(), which cannot possibly be invoked downstream of
> >>newDocument(). And anyway, it's certainly not one of the three
> >>exceptions thrown by newDocument().
> >>
> >>Something weird is going on here. Here is the stack trace returned by
> >>Tomcat when I invoke the servlet.
> >>
> >>java.lang.NoClassDefFoundError: javax/xml/soap/SOAPException
> >> Proxy.ProxyServlet.handleHtmlFile(ProxyServlet.java:94)
> >> Proxy.ProxyServlet.doGet(ProxyServlet.java:55)
> >> javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
> >> javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> >>
> >>ProxyServlet is my code, and line 94 reads
> >>
> >>Document doc = XMLUtils.newDocument(conn.getInputStream())
> >>
> >>conn is an instance of HttpURLConnection that was returned by
> >>url.openConnection(), where url is an instance of URL initialized to a
> >>valid url value.
> >>
> >>
> >>
> >>
> >
> >
> >
> >
Re: What's SOAP got to do with it?
Posted by Mark Leone <mi...@cox.net>.
Tomcat is not producing a stack trace for this event in its log files. I
asked for some advice on this on the Tomcat list, and if I get a full
stack trace I'll post it here. Or maybe I'll find that I have a Tomcat
problem that's causing the original error as well. Thanks for offering
to look at the stack trace.
BTW, I tried it from my java IDE, but I don't have an IDE integrated
with Tomcat, and I got a different error when I tried it- probably
because I wasn't invoking from within a servlet engine.
-Mark
Davanum Srinivas wrote:
>can u please post the whole stacktrace...
>
>-- dims
>
>On 4/30/05, Mark Leone <mi...@cox.net> wrote:
>
>
>>I have a servlet in which I'm making a static call to
>>org.apache.utils.XMLUtils.newDocument(InputStream inp). Tomcat, my
>>servlet container, returns a class definition not found error, looking
>>for SOAPException. I've gone through the XMLUtils source code ( and
>>source code for all methods invoked by newDocument() ) over and over
>>again, and there's simply no reference to SOAP exception anywhere in my
>>processing thread. It appears only one time in the entire class, in
>>method getEncoding(), which cannot possibly be invoked downstream of
>>newDocument(). And anyway, it's certainly not one of the three
>>exceptions thrown by newDocument().
>>
>>Something weird is going on here. Here is the stack trace returned by
>>Tomcat when I invoke the servlet.
>>
>>java.lang.NoClassDefFoundError: javax/xml/soap/SOAPException
>> Proxy.ProxyServlet.handleHtmlFile(ProxyServlet.java:94)
>> Proxy.ProxyServlet.doGet(ProxyServlet.java:55)
>> javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
>> javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>>
>>ProxyServlet is my code, and line 94 reads
>>
>>Document doc = XMLUtils.newDocument(conn.getInputStream())
>>
>>conn is an instance of HttpURLConnection that was returned by
>>url.openConnection(), where url is an instance of URL initialized to a
>>valid url value.
>>
>>
>>
>>
>
>
>
>
Re: What's SOAP got to do with it?
Posted by Davanum Srinivas <da...@gmail.com>.
can u please post the whole stacktrace...
-- dims
On 4/30/05, Mark Leone <mi...@cox.net> wrote:
> I have a servlet in which I'm making a static call to
> org.apache.utils.XMLUtils.newDocument(InputStream inp). Tomcat, my
> servlet container, returns a class definition not found error, looking
> for SOAPException. I've gone through the XMLUtils source code ( and
> source code for all methods invoked by newDocument() ) over and over
> again, and there's simply no reference to SOAP exception anywhere in my
> processing thread. It appears only one time in the entire class, in
> method getEncoding(), which cannot possibly be invoked downstream of
> newDocument(). And anyway, it's certainly not one of the three
> exceptions thrown by newDocument().
>
> Something weird is going on here. Here is the stack trace returned by
> Tomcat when I invoke the servlet.
>
> java.lang.NoClassDefFoundError: javax/xml/soap/SOAPException
> Proxy.ProxyServlet.handleHtmlFile(ProxyServlet.java:94)
> Proxy.ProxyServlet.doGet(ProxyServlet.java:55)
> javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
> javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>
> ProxyServlet is my code, and line 94 reads
>
> Document doc = XMLUtils.newDocument(conn.getInputStream())
>
> conn is an instance of HttpURLConnection that was returned by
> url.openConnection(), where url is an instance of URL initialized to a
> valid url value.
>
>
--
Davanum Srinivas - http://webservices.apache.org/~dims/