Java NoClassDefFoundError:org/w3c/dom/ElementTraversal
我安装了Jetty 7,并按照本指南正确配置了IdP Shibboleth: 但当我尝试启动Jetty时,我得到了以下错误:Java NoClassDefFoundError:org/w3c/dom/ElementTraversal,java,jetty,shibboleth,Java,Jetty,Shibboleth,我安装了Jetty 7,并按照本指南正确配置了IdP Shibboleth: 但当我尝试启动Jetty时,我得到了以下错误: NoClassDefFoundError: org/w3c/dom/ElementTraversal 要解决此问题,我需要安装ElementTraversal依赖项,并将其包含在我的类路径中
NoClassDefFoundError: org/w3c/dom/ElementTraversal
要解决此问题,我需要安装ElementTraversal依赖项,并将其包含在我的类路径中<但是我怎样才能做到这一点呢?我需要下载这个类还是一个.jar文件?我可以把它放在哪里?在JETTY_HOME
?是否需要导出类路径
有人能帮我吗?非常感谢你 看起来ElementTraversal是
xml-API-2.10.0.jar的一部分,应该随Shibboleth安装一起提供
因此,如果您遵循以下步骤,您也应该遵循以下步骤:
通过创建JETTY_HOME/lib/annowed/目录来认可Xerces和Xalan,并将IdP source annowed/目录中包含的.jar文件复制到新创建的目录中
只要您正确地复制了所有jar文件,就可以了。我猜您错过了这一步——或者可能只是复制了名称中带有Xalan或Xerces的jar文件,而错过了另外两个。在我的例子中,通过将xml API版本从1.3.04更改为1.4.01,问题得到了解决
顺便说一句,Maven Central中不存在2.10.0版(我很好奇Jon Skeet在哪里找到的)。将此添加到文件中,以解决依赖关系:
<dependency>
<groupId>xml-apis</groupId>
<artifactId>xml-apis</artifactId>
<version>1.4.01</version>
</dependency>
xml API
xml API
1.4.01
非常感谢,但我也遵循了这一步骤。我将xalan-2.7.1.jar
和xercesImpl-2.10.0.jar
正确复制到JETTY_HOME/lib/annocated/中,并在start.ini中添加了以下行:-Djava.annocated.dirs=lib/annocated
我遵循了所有步骤。我在opt/shibboleth idp/lib/annowed/xml-api-2.10.0.jar
。。我认为问题可能出在start.ini中定义的路径上。我可以尝试使用绝对路径-Djava.annowed.dirs=/home/user/webapps/jetty/lib/annowed
也不能使用绝对路径。谢谢Jon Skeet,收到您对我的问题的回复,我感到非常高兴和荣幸。@Fuiba:不清楚您是否将所有四个jar文件复制到JETTY_HOME/lib/annowed中。您说您在opt/shibboleth idp/lib/annowned中有xml-api-2.10.0.jar,但应该将其与xalan和xerces jar文件一起复制。是吗?@Fuiba:但在更改之前,它已经说了“复制IdP source/directory中包含的.jar文件”-我不认为这是一个错误,尽管我同意现在更清楚了。这是2016年12月的一个有用答案的补充,在maven中还有一个2.0.0和2.0.2版本的xml API,但它们不是新的jar,它们只是一个pom,表示迁移到1.0.b2。我不知道是哪个团队在背后支持这一点,但如果他们不想打开他们的代码,他们不必把它放在maven中,这是可以理解的。但是他们把它放在那里,并将它重新定位到一个较低的版本,这浪费了许多开发人员的时间(我看到2.0版本的使用超过100次),这是不可接受的。@Tiina这是我的理由……很遗憾我没有先找到这个评论。然而,你能完成这个并告诉我们如何使用maven获得正确的版本吗?@conversorshaki我通常使用stackoverflow找到正确的版本。并尝试使用更高版本和可接受使用次数的版本。虽然我使用XMLAPI2.0,但问题没有解决,但我查看了它的pom,发现“重新定位到较低的”oops。通常,当人们在更新pom后看不出有什么不同时,他们会首先考虑他们的互联网问题。这也是我第一个担心的问题。这个神奇的方法对我有效,代码:`private static void generateHTMLFromPDF(字符串文件名)抛出IOException,parserConfiguration异常{PDDocument pdf=PDDocument.load(new File(filename));Writer output=new PrintWriter(“pdf.html”,“utf-8”);new PDFDomTree().writeText(pdf,输出);output.close();}`开始工作!