gpt4 book ai didi

jsf - Xerces 错误 : org. apache.xerces.impl.dv.dtd.DTDDVFactoryImpl

转载 作者:行者123 更新时间:2023-12-03 10:28:52 26 4
gpt4 key购买 nike

我正在使用 JSF 2.0、NetBeans 6.9.1、GlassFish Server 3.1、mojarra 2.0.3 和 JasperReports 3.7.6 开发 Web 应用程序。我的项目库中包含 jar 文件“xerces-2.8.0.jar”。该文件是作为 JasperReports jar 文件库的一部分导入的。每当我尝试通过 NetBeans 部署、运行或调试我的项目时,我都会收到以下错误:

java.lang.Exception: java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: com.sun.faces.config.ConfigurationException: CONFIGURATION FAILED! DTD factory class org.apache.xerces.impl.dv.dtd.DTDDVFactoryImpl does not extend from DTDDVFactory.

在我的项目中进行任何更改后,我的构建失败,并且当我尝试部署、运行或调试它时收到上述错误。我必须重新启动服务器并再次运行/调试。我已经在互联网上搜索过,但找不到解决此问题的方法。我查看了有问题的 jar 文件,并且 DTDDVFactoryImpl 确实从 DTDDVFactory 扩展 - 我不知道为什么我会收到此错误。虽然我最终可以让我的项目运行,但如果我没有收到这个错误会更好。

谁能告诉我如何解决这个问题?我需要从我的项目库中删除这个文件吗?我是否需要使用较新版本/较旧版本更新此文件?

最佳答案

如果您提供自己的 xerces.jar,则必须通过 Endorsed Standards Override Mechanism ( java -Djava.endorsed.dirs=/path/to/xerces.jar ) 来执行此操作,您不能仅将其添加到类路径中(如果这样做,迟早会遇到麻烦) .让我解释。

JAXP 是 Java API for XML Processing . JAXP 对象(如解析器、XSLT 转换器、DOM 文档)的创建是通过 factory/factory-method pattern 完成的。所以你可以插入一个新的 JAXP 实现(它必须比你的 JRE 中提供的更新)。 Xerces 提供(部分)JAXP 实现并包含认可的标准(认可的标准是通过标准流程而不是 Java 社区流程定义的 Java API,请参阅 Endorsed Standards Override Mechanism)。如果您不使用 ESOM,您将遇到各种麻烦。

关于jsf - Xerces 错误 : org. apache.xerces.impl.dv.dtd.DTDDVFactoryImpl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4730103/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com