[jdom-interest] Re: jdom 1.0 XMLOutputter -- problems

Edelson, Justin Justin.Edelson at mtvn.com
Tue Apr 4 08:01:30 PDT 2006


> not sure, the code creates the file here..
>
>    Document doc = builder.build(new File(filename));

And if the file at the path specified in filename doesn't exist, then
you'll get a FileNotFoundException. This has nothing to do with JDom.
You could check this by doing something like:
File f = new File(filename);
if (f.exists()) {
  Document doc = builder.build(f);
  ....
} else {
  System.err.println("file at "+filename+" doesn't exist!!!");
}

> as for the code you posted, something interesting is happening: I can
get it to compile in Tomcat, but not outside Tomcat (just did a
stand-alone with
> the code you posted, that's it..  in both cases have the class w/your
code (doXML.java) and all the jars that came w/jdom download in same
directory,
> and compile thus:

> javac -classpath
>
jaxen-core.jar;jaxen-jdom.jar;jdom.jar;saxpath.jar;xalan.jar;xerces.jar;
xml-apis.jar;.

> works inside Tomcat, but not outside Tomcat..  why would this be.. 

This isn't possible. Tomcat doesn't compile code, with the exception of
JSPs. In any case, in my experience, the compiler has ever just not
worked - it always gives some helpful error message (sometimes more
helpful than others). Have you thought about using an IDE instead of
using the command-line compiler? It might make things easier for you.

-----Original Message-----
From: jdom-interest-bounces at jdom.org
[mailto:jdom-interest-bounces at jdom.org] On Behalf Of Frances
Sent: Tuesday, April 04, 2006 9:49 AM
To: jdom-interest at jdom.org
Subject: [jdom-interest] Re: jdom 1.0 XMLOutputter -- problems

Edelson, Justin wrote:
> Here's some basic document creation code:
> 	Document document = new Document();
> 	Element rootElement = new Element("root");
> 	document.setRootElement(rootElement);
> 	Element childElement = new Element("child");
> 	rootElement.addContent(childElement);
> 	childElement.setText("some text");
> 
> Same code all on one line:
> 	Document doc2 = new Document().setRootElement(new 
> Element("root").addContent(new Element("child").setText("some 
> text")));
> 
> As for your other issues, these really don't have anything to do with 
> jdom. I suggest you read up on the importance of the classpath to 
> figure out why your are getting a ClassNotFoundException. Comparing 
> command-line Java with Tomcat isn't really a valid comparison as 
> Tomcat is a container that uses custom classloaders based on a 
> directory structure.
> 
> As for your FileNotFoundException, any reason to think this isn't just

> because this file doesn't exist?

not sure, the code creates the file here..

    Document doc = builder.build(new File(filename));

as for the code you posted, something interesting is happening: I can
get it to compile in Tomcat, but not outside Tomcat (just did a
stand-alone with the code you posted, that's it..  in both cases have
the class w/your code (doXML.java) and all the jars that came w/jdom
download in same directory, and compile thus:

javac -classpath
jaxen-core.jar;jaxen-jdom.jar;jdom.jar;saxpath.jar;xalan.jar;xerces.jar;
xml-apis.jar;.

works inside Tomcat, but not outside Tomcat..  why would this be.. 
thank you very much for your help..  Frances



> 
> Justin
> 
> -----Original Message-----
> From: jdom-interest-bounces at jdom.org
> [mailto:jdom-interest-bounces at jdom.org] On Behalf Of Frances
> Sent: Monday, April 03, 2006 4:52 PM
> To: jdom-interest at jdom.org
> Subject: [jdom-interest] Re: jdom 1.0 XMLOutputter -- problems
> 
> Bradley S. Huffman wrote:
> 
>>>Exception in thread "main" java.lang.NoClassDefFoundError: 
>>>org/jdom/input/SAXBuilder..
>>>
>>>I downloaded jdom this weekend, put jdom.jar and all other jars that 
>>>come with the download in the classpath...  but get many errors when 
>>>trying to compile stuff (deprecated methods (like addAttribute(), 
>>>which I change to setAttribute() but still get errors..  errors that 
>>>SAXBuilder and XMLOutputter can't be found.. I looked in jar, I 
>>>looked
> 
> 
>>>in docs, these classes are there..) what is the problem pls, thank
> 
> you...
> 
>>
>>addAttribute?  Sounds like there's a very old jar in your classpath. 
>>Did you download from http://www.jdom.org/dist/binary either 
>>jdom-1.0.tar.gz or jdom-1.0.zip, and are you sure it's in your
> 
> classpath?
> 
>>Brad
>>_______________________________________________
>>To control your jdom-interest membership:
>>http://www.jdom.org/mailman/options/jdom-interest/youraddr@yourhost.co
>>m
>>
> 
> yes and yes....
> 
> downloaded just this weekend, downloaded jdom-1.0.zip...
> 
> ok, look at this small example, from
> http://www.javaworld.com/javaworld/jw-05-2000/jw-0518-jdom-p2.html
> 
> import java.io.*;
> import org.jdom.*;
> import org.jdom.input.SAXBuilder;
> import org.jdom.input.*;
> import org.jdom.output.*;
> 
> public class PrettyPrinter {
>     public static void main(String[] args) {
>      //    Assume filename argument
>      //    String filename = args[0];
> 	  String filename = "myFile";
> 
>          try {
>              // Build the document with SAX and Xerces, no validation
>              SAXBuilder builder = new SAXBuilder();
>              // Create the document
>              Document doc = builder.build(new File(filename));
> 
>              // Output the document, use standard formatter
>              XMLOutputter fmt = new XMLOutputter();
>              fmt.output(doc, System.out);
>          } catch (Exception e) {
>              e.printStackTrace();
>          }
>      }
> }
> 
> this compiles fine but when run it with just this command:
> 
>      java PrettyPrinter
> 
> get following error: Exception in thread "main" 
> java.lang.NoClassDefFoundError: org/jdom/input/SAXBui lder (I don't 
> get this.. if this class cannot be found how come it compiled fine?  
> do you need to always indicate cp when running classes with
third-party API's?
> I don't have to do this w/Tomcat..)
> 
> if I run it like this:  java -cp jdom.jar;. PrettyPrinter
> 
> get this error:
> 
> java.io.FileNotFoundException: C:\Documents and Settings\fdelrio\My 
> Documents\xslt\myFile (The system cannot find the file specified)
>          at java.io.FileInputStream.open(Native Method)
>          at java.io.FileInputStream.<init>(Unknown Source)
>          at java.io.FileInputStream.<init>(Unknown Source)
>          at 
> sun.net.www.protocol.file.FileURLConnection.connect(Unknown
> Source)
>          at
> sun.net.www.protocol.file.FileURLConnection.getInputStream(Unknown So
> urce)
>          at java.net.URL.openStream(Unknown Source)
>          at org.apache.crimson.parser.InputEntity.init(Unknown Source)
>          at org.apache.crimson.parser.Parser2.parseInternal(Unknown
> Source)
>          at org.apache.crimson.parser.Parser2.parse(Unknown Source)
>          at org.apache.crimson.parser.XMLReaderImpl.parse(Unknown
> Source)
>          at org.jdom.input.SAXBuilder.build(SAXBuilder.java:453)
>          at org.jdom.input.SAXBuilder.build(SAXBuilder.java:810)
>          at org.jdom.input.SAXBuilder.build(SAXBuilder.java:789)
>          at PrettyPrinter.main(PrettyPrinter.java:20)
> 
> 
> I would LOVE to have some code to just create a simple xml file with 
> JDOM.. (still don't know if SAX or DOM is best...)  'parsing' means to

> READ an xml file, so if you're CREATING an xml file you don't need to 
> parse right?  sorry if these questions sound stupid, am just beginning

> to learn all this stuff.. finally know diff betw. SAX and DOM... :)
> 
> thank you very much..
> 
> Frances
> 
> 
> 
> 
> 
> 
> 
> _______________________________________________
> To control your jdom-interest membership:
> http://www.jdom.org/mailman/options/jdom-interest/youraddr@yourhost.co
> m
> 
> _______________________________________________
> To control your jdom-interest membership:
> http://www.jdom.org/mailman/options/jdom-interest/youraddr@yourhost.co
> m
> 

_______________________________________________
To control your jdom-interest membership:
http://www.jdom.org/mailman/options/jdom-interest/youraddr@yourhost.com



More information about the jdom-interest mailing list