2012-10-17 12 views
8

Ho scaricato dom4j-1.6.1 e l'ho aggiunto al percorso di generazione di java. Ho anche familiarità con java.lang.NoClassDefFoundError: org/saxpath/SAXPathException ma continuo a ricevere un'eccezione.Java dom4j org/jaxen/NamespaceElenco dei casi

allegato un frammento:

public class Parser { 
    public static void parse(final String path) throws Exception { 
     final SAXReader reader = new SAXReader(); 
     final Document document = reader.read(new File(path).toURI().toURL()); 
     if (document == null) return; 
     List list = document.selectNodes("/"); 
     for (Object o : list) 
      System.out.println(o); 
    } 
} 

quando l'eseguo, ottengo il seguente stack trace

Exception in thread "main" java.lang.NoClassDefFoundError: org/jaxen/NamespaceContext 
    at org.dom4j.DocumentFactory.createXPath(DocumentFactory.java:230) 
    at org.dom4j.tree.AbstractNode.createXPath(AbstractNode.java:207) 
    at org.dom4j.tree.AbstractNode.selectNodes(AbstractNode.java:164) 
    at Parser.parse(Parser.java:15) 
    at Main.main(Main.java:6) 
Caused by: java.lang.ClassNotFoundException: org.jaxen.NamespaceContext 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:423) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356) 
    ... 5 more 

Qualsiasi indizio che cosa causa l'errore?

risposta

17

L'eccezione:

java.lang.ClassNotFoundException: org.jaxen.NamespaceContext 

Forse si è dimenticato di includere il jaxen.jar nel percorso della tua generazione Java.

Per istruzioni più specifiche sull'utilizzo SAXReader per analizzare alcuni XML e un ciclo tra i nodi: https://stackoverflow.com/a/24959790/445131

+2

Ecco un collegamento a sniper di dipendenza jaxen per il tuo pom, ecc .: http://mvnrepository.com/artifact/jaxen/jaxen/1.1.1 – Jim

2

ha scoperto la soluzione. Ho dovuto scaricare e includere jaxen nel percorso di generazione di java.