Caros amigos,

alguem aqui já trabalhou com java e XML e/ou o pacote da propria SUN de acesso a arquivos XML?
Peguei o pacote "java_xml_pack-spring02-dev.zip" que inclui o "JAXP", estou tentando rodar um exemplo simples, mas sempre dá erro...

Quem tiver qualquer coisa, por favor, me envie, mesmo sendo em private. Adradeço a atenção de todos.


O erro:

C:\Developer\java\dev\xml>java MySAXApp teste.xml
Exception in thread "main" java.lang.NoClassDefFoundError: org/xml/sax/helpers/D
efaultHandler
        at java.lang.ClassLoader.defineClass0(Native Method)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$100(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClassInternal(Unknown Source)

O código:

import java.io.FileReader;

import org.xml.sax.XMLReader;
import org.xml.sax.Attributes;
import org.xml.sax.InputSource;
import org.xml.sax.helpers.XMLReaderFactory;
import org.xml.sax.helpers.DefaultHandler;

public class MySAXApp extends DefaultHandler {

  /*  public MySAXApp ()    {
        super();
        System.out.println("Contrutor");
    }*/
   
    public static void main (String args[])        throws Exception    {
                System.out.println("main inicio");
                XMLReader xr = XMLReaderFactory.createXMLReader();
                MySAXApp handler = new MySAXApp();
                xr.setContentHandler(handler);
                xr.setErrorHandler(handler);

                                // Parse each file provided on the
                                // command line.
                for (int i = 0; i < args.length; i++) {
                            FileReader r = new FileReader(args[i]);
                            xr.parse(new InputSource(r));
                }
                        System.out.println("main fim");

    }//fim main

        ////////////////////////////////////////////////////////////////////
            // Event handlers.
            ////////////////////////////////////////////////////////////////////
        public void startDocument ()    {
                System.out.println("Start document");
            }


        public void endDocument ()    {
                System.out.println("End document");
            }

        public void startElement (String uri, String name, String qName, Attributes atts)   {
                if ("".equals (uri))
                            System.out.println("Start element: " + qName);
                else
                            System.out.println("Start element: {" + uri + "}" + name);
            }


        public void endElement (String uri, String name, String qName)    {
                if ("".equals (uri))
                            System.out.println("End element: " + qName);
                else
                            System.out.println("End element:   {" + uri + "}" + name);
            }

        public void characters (char ch[], int start, int length)    {
                System.out.print("Characters:    \"");
                for (int i = start; i < start + length; i++) {
                            switch (ch[i]) {
                                    case '\\':
                                        System.out.print("\\\\");
                                        break;
                                    case '"':
                                        System.out.print("\\\"");
                                        break;
                                    case '\n':
                                        System.out.print("\\n");
                                        break;        
                                    case '\r':
                                        System.out.print("\\r");
                                        break;
                                    case '\t':
                                        System.out.print("\\t");
                                        break;
                                    default:
                                        System.out.print(ch[i]);
                                        break;
                            }
                }
                System.out.print("\"\n");
        } //fim characters



}//fim class

Atenciosamente
PAULO BRANCO
DIRETIVA DIGITAL

Responder a