Java Mailing List Archive

http://www.junlu.com/

Home » Home (12/2007) » JDOM User »

[jdom-interest] SAXBuilder bug::build(URL or Reader) (part 2)

Emmanuel Gilmont

2003-10-09


Hi all,

I tested the solution provided by Bill Woodward but it doesn't work and
I don't know why.

I give a sample code and my xml file here after.

What is strange is that I can read the file when on disk but not trough
a url, nor in a jar file nor from a website.

I think I will revert to beta 8 version until it's corrected. Except if
someone has a solution :)

Thanks for all,
Emmanuel

----[XML file : tpc.xml]----------------------------------------------------
<?xml version="1.0" encoding="ISO-8859-1"?>
<docroot>
<tpc version="1.0">
  <profile name="item1" value="1" />
  <profile name="item2" value="2" />
  <profile name="item3" value="3" />
  <profile name="item4" value="4" />
</tpc>
</docroot>
----[java code]----------------------------------------------------
import java.io.*;
import java.net.*;
import org.jdom.*;
import org.jdom.input.*;

public class testjdom
{
public testjdom()
{
}

private void readFileFromDisk()
{
  try
  {
   System.out.println("------ Reading from file : start ------");
   File f = new File("c:/tpc.xml");
   SAXBuilder sb = new SAXBuilder();
   Reader schemaReader = new InputStreamReader(new FileInputStream(f));
   System.out.println("-------------------");
   int x = schemaReader.read();
   while (x != -1)
   {
    System.out.print((char)x);
    x = schemaReader.read();
   }
   System.out.println("-------------------");
   sb.build(f);
  }
  catch(Exception e)
  {
   e.printStackTrace();
  }
}

private void readFileFromUrl()
{
  try
  {
   System.out.println("------ Reading from URL : start ------");
   File f = new File("c:/tpc.xml");
   SAXBuilder sb = new SAXBuilder();
   URL schemaUrl = new URL("http://localhost/tpc.xml");
   Reader schemaReader = new InputStreamReader(schemaUrl.openStream());
   System.out.println("-------------------");
   int x = schemaReader.read();
   while (x != -1)
   {
    System.out.print((char)x);
    x = schemaReader.read();
   }
   System.out.println("-------------------");
   sb.build(schemaReader);
  }
  catch(Exception e)
  {
   e.printStackTrace();
  }
}
public static void main(String args[])
{
  testjdom job = new testjdom();
  job.readFileFromDisk();
  job.readFileFromUrl();
}
}
----[stdout dump]----------------------------------------------------
------ Reading from file : start ------
-------------------
<?xml version="1.0" encoding="ISO-8859-1"?>

<docroot>
<tpc version="1.0">
  <profile name="item1" value="1" />
  <profile name="item2" value="2" />
  <profile name="item3" value="3" />
  <profile name="item4" value="4" />
</tpc>
</docroot>
-------------------
------ Reading from URL : start ------
-------------------
<?xml version="1.0" encoding="ISO-8859-1"?>

<docroot>
<tpc version="1.0">
  <profile name="item1" value="1" />
  <profile name="item2" value="2" />
  <profile name="item3" value="3" />
  <profile name="item4" value="4" />
</tpc>
</docroot>
-------------------
org.jdom.input.JDOMParseException: Error on line 1: El�ment racine de
document manquant.
    at org.jdom.input.SAXBuilder.build (SAXBuilder.java:381)
    at org.jdom.input.SAXBuilder.build (SAXBuilder.java:764)
    at testjdom.readFileFromUrl(testjdom.java:62)
    at testjdom.main(testjdom.java:81)
Caused by: org.xml.sax.SAXParseException: El�ment racine de document
manquant.
    at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3339)
    at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3327)
    at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:635)
    at org.apache.crimson.parser.Parser2.parse(Parser2.java:333)
    at
org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:448)
    at org.jdom.input.SAXBuilder.build (SAXBuilder.java:370)
    ... 3 more
Caused by: org.xml.sax.SAXParseException: El�ment racine de document
manquant.
    at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3339)
    at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3327)
    at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:635)
    at org.apache.crimson.parser.Parser2.parse(Parser2.java:333)
    at
org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:448)
    at org.jdom.input.SAXBuilder.build (SAXBuilder.java:370)
    at org.jdom.input.SAXBuilder.build (SAXBuilder.java:764)
    at testjdom.readFileFromUrl(testjdom.java:62)
    at testjdom.main(testjdom.java:81)
Caused by: org.xml.sax.SAXParseException: El�ment racine de document
manquant.
    at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3339)
    at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3327)
    at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:635)
    at org.apache.crimson.parser.Parser2.parse(Parser2.java:333)
    at
org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:448)
    at org.jdom.input.SAXBuilder.build (SAXBuilder.java:370)
    at org.jdom.input.SAXBuilder.build (SAXBuilder.java:764)
    at testjdom.readFileFromUrl(testjdom.java:62)
    at testjdom.main(testjdom.java:81)


_______________________________________________
To control your jdom-interest membership:
http://lists.denveronline.net/mailman/options/jdom-interest/youraddr@(protected)


©2008 junlu.com - Jax Systems, LLC, U.S.A.