NoClassDefFoundError:org / w3c / dom / ElementTraversal

时间:2013-07-07 19:06:35

标签: java jetty shibboleth

我按照本指南安装了Jetty 7并为 IdP Shibboleth 配置了正确的内容:https://wiki.shibboleth.net/confluence/display/SHIB2/IdPJetty7Prepare

但是当我尝试启动Jetty时,我收到了这个错误:

NoClassDefFoundError: org/w3c/dom/ElementTraversal

要解决此问题,我需要安装 ElementTraversal 依赖项并将其包含在我的类路径中。
但我怎么能做到这一点?我是否需要下载此课程 [ElementTraversal.class] .jar 文件?我可以放在哪里?在JETTY_HOME?我是否需要导出CLASSPATH

有人可以帮助我吗? 非常感谢你!

3 个答案:

答案 0 :(得分:20)

看起来ElementTraversal是xml-apis-2.10.0.jar的一部分,它应该与您的Shibboleth安装一起提供。

因此,如果你关注these instructions,你也应该遵循这一步:

  

通过创建目录JETTY_HOME / lib / endorsed /来支持Xerces和Xalan,并将IdP源endorsed /目录中包含的.jar文件复制到新创建的目录中。

只要您正确复制了所有jar文件,它就应该没问题。我的猜测是你错过了那一步 - 或者只是用名称中的Xalan或Xerces复制了jar文件,而错过了其他两个。

答案 1 :(得分:17)

在我的情况下,通过将xml-apis版本从1.3.04更改为1.4.01来解决问题。

BTW,Maven Central中不存在版本2.10.0(我很好奇Jon Skeet在哪里找到它。)

答案 2 :(得分:4)

将此添加到文件中以解决依赖性:

 <dependency>
      <groupId>xml-apis</groupId>
      <artifactId>xml-apis</artifactId>
      <version>1.4.01</version>
 </dependency>