30

我按照本指南安装了 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吗?

有人能帮我吗?
非常感谢!

4

4 回答 4

30

看起来 ElementTraversalxml-apis-2.10.0.jar应该是您的 Shibboleth 安装的一部分。

因此,如果您遵循这些说明,您也应该遵循此步骤:

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

只要您正确复制了所有jar文件,就可以了。我的猜测是你错过了这一步——或者可能只是复制了名称中带有 Xalan 或 Xerces 的 jar 文件,而错过了另外两个。

于 2013-07-07T19:28:09.647 回答
21

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

BTW, version 2.10.0 doesn't exist in Maven Central (I'm curious where did Jon Skeet find it).

于 2013-09-24T18:37:58.130 回答
16

Add this in your file, to resolve the dependency:

 <dependency>
      <groupId>xml-apis</groupId>
      <artifactId>xml-apis</artifactId>
      <version>1.4.01</version>
 </dependency>
于 2019-02-17T08:07:30.913 回答
0

In my case, it was gradle-spoon-plugin. None of the solutions did help. What we could do was just remove it totally from the project.

See: https://github.com/jaredsburrows/gradle-spoon-plugin/issues/96

于 2021-11-15T05:37:27.397 回答