使用 Apache ODF 工具包获取 java.lang.NoClassDefFoundError: org/apache/xerces/dom/ElementNSImpl

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/18147937/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-11 22:46:57  来源:igfitidea点击:

Getting java.lang.NoClassDefFoundError: org/apache/xerces/dom/ElementNSImpl with Apache ODF Toolkit

javaodfodfdom

提问by Ravi Joshi

I am trying to read an odsfile using Apache ODF Toolkit. I am getting java.lang.NoClassDefFoundErrorerror while while trying to load the Spreadsheet using below code-

我正在尝试ods使用Apache ODF Toolkit. java.lang.NoClassDefFoundError尝试使用以下代码加载电子表格时出现错误 -

SpreadsheetDocument data = SpreadsheetDocument.loadDocument(file);

Below is the error trace-

以下是错误跟踪-

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/xerces/dom/ElementNSImpl
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(Unknown Source)
    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##代码##0(Unknown Source)
    at java.net.URLClassLoader.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.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(Unknown Source)
    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##代码##0(Unknown Source)
    at java.net.URLClassLoader.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 test.read.ODSFile.ReadODS.main(ReadODS.java:33)
Caused by: java.lang.ClassNotFoundException: org.apache.xerces.dom.ElementNSImpl
    at java.net.URLClassLoader.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)
    ... 25 more

Below is the project structure, which shows the classpath- Eclipse screenshot

下面是项目结构,其中显示了类路径- Eclipse screenshot

Is there any dependencies missing?

是否缺少任何依赖项?

采纳答案by Nomada

It seems your code can not find the class: Caused by: java.lang.ClassNotFoundException: org.apache.xerces.dom.ElementNSImpl

看来你的代码找不到类:引起:java.lang.ClassNotFoundException:org.apache.xerces.dom.ElementNSImpl

from ODF Toolkit

来自ODF 工具包

Note: ODFDOM requires Apache Xerces. The jar file xercesImpl.jar also must exist in a folder lib next to odfxsltrunner.jar file, or it must be in the classpath. The ODF XSLT Runner NetBeans projects includes a reference to xersesImpl.jar in the runtime classpath which has to be adapted after checking out the project.

注意:ODFDOM 需要 Apache Xerces。jar 文件 xercesImpl.jar 还必须位于 odfxsltrunner.jar 文件旁边的文件夹 lib 中,或者它必须位于类路径中。ODF XSLT Runner NetBeans 项目在运行时类路径中包含对 xersesImpl.jar 的引用,在签出项目后必须对其进行调整。