Java dom4j org/jaxen/NamespaceContext异常

Mr.*_*Mr. 9 java dom4j

我已经下载了dom4j-1.6.1并将其添加到java的构建路径中.我也熟悉java.lang.NoClassDefFoundError:org/saxpath/SAXPathException但我一直遇到异常.

附上一个片段:

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);
    }
}
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我得到以下堆栈跟踪

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
Run Code Online (Sandbox Code Playgroud)

是什么原因导致错误?

vik*_*iii 20

例外情况:

java.lang.ClassNotFoundException: org.jaxen.NamespaceContext
Run Code Online (Sandbox Code Playgroud)

也许您忘了jaxen.jar在Java构建的路径中包含它.

有关使用SAXReader解析某些XML并在节点中循环的更具体说明:https: //stackoverflow.com/a/24959790/445131

  • 这是一个链接到你的pom的jaxen依赖snipets等:http://mvnrepository.com/artifact/jaxen/jaxen/1.1.1 (3认同)