NoClassDefFoundError: org/w3c/dom/ElementTraversal

2022-09-01 09:25:37

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

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

NoClassDefFoundError: org/w3c/dom/ElementTraversal

要解决此问题,我需要安装 ElementTraversal 依赖项并将其包含在我的类路径中。
但是我该如何做到这一点呢?我需要下载这个类[ElementTraversal.class].jar文件吗?我可以把它放在哪里?在?我是否需要导出 ?JETTY_HOMECLASSPATH

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


答案 1

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

因此,如果您遵循这些说明,则还应该执行此步骤:

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

只要您适当地复制了所有jar文件,就应该没问题。我的猜测是你错过了这一步 - 或者可能复制了名称中带有Xalan或Xerces的jar文件,而错过了其他两个。


答案 2

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

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


推荐