[jdom-interest] SAXBuilder.build() second try

John Muhlestein jmuhlestein at i-link.net
Fri Jul 20 08:36:22 PDT 2001


Thank you so much for sending me some code that has worked for you before.
I was wondering if you happened to notice any problems in the class that
calls the servlet.  The JDOM Document still does not appear to be building
and I get the following error in the calling program:

java.io.FileNotFoundException: http://devboard/xml/servlet/whlsl 	at
sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection
.java:545) 	at
com.ilink.whlsl.util.WhlslPostTest.main(WhlslPostTest.java:64)

my debug code is showing that the servlet is getting to the
SAXBuilder().build(in) code but not beyond that point.  
I want to apologize if this is starting to get too far off topic.

thanks again for the help,

John

-----Original Message-----
From: Joseph Bowbeer [mailto:jozart at csi.com]
Sent: Friday, July 20, 2001 6:52 AM
To: jdom-interest at jdom.org
Cc: jmuhlestein at i-link.net
Subject: [jdom-interest] SAXBuilder.build() second try


If your problem is that closing the input stream is closing the socket, then
your code isn't going to fix this: BufferedReader.close() closes the
unbuffered stream, putting you right back where you started.

Also, it doesn't look like you're making use of the content-length provided.

The following has always worked for me:

    byte[] buf = new byte[request.getContentLength()];
    new DataInputStream(request.getInputStream()).readFully(buf);
    InputStream in = new ByteArrayInputStream(buf);
    Document doc = new SAXBuilder().build(in);


----- original message -----
From: John Muhlestein jmuhlestein at i-link.net
Date: Thu, 19 Jul 2001 16:32:34 -0600

I have gone through and done what I thought would be a similar wrapper to
what is described in the FAQ for sockets to get my servlet to work and I
still seem to be hanging on the build process.

Here is the code in my servlet that I try to build my document with.
<code>
    BufferedReader br = request.getReader();
    char[] xml = new char[8000];
    br.read(xml);
    br.close();
    CharArrayReader reader = new CharArrayReader(xml);

    SAXBuilder builder = new SAXBuilder(true);
    Document doc = builder.build(reader);
</code>

If I view the value of the array "xml" it contains my entire document that I
am POSTing to the servlet.  I am including the .java file that represents
the class I use to send data to the servlet.

I would think passing xml to a servlet would be pretty common and I'm just
missing something simple.  Just for the record again, I am using jdom-b7
from cvs 3 days ago and Tomcat 3.2 as my servlet container with my
application built into it's own context.

thanks again,

John

_______________________________________________
To control your jdom-interest membership:
http://lists.denveronline.net/mailman/options/jdom-interest/youraddr@yourhos
t.com



More information about the jdom-interest mailing list