1

自今天中午 IST 以来,我们的错误率一直在下降。应用程序几年来运行良好,但从今天中午开始出现此错误。

必须声明元素类型“struts”。在 (null:26:9) org.xml.sax.SAXParseException; systemId: jar:file:/WEB-INF/lib/struts2-jquery-grid-plugin-2.2.0.jar!/struts-plugin.xml; 行号:26;列号:9;必须声明元素类型“struts”。

我们正在使用带有 Java 1.7 版本的 Tomcat 服务器,其项目包含 Struts 2.1.6、struts2-jquery-plugin-3.6.1 和 struts2-jquery-grid-plugin-2.2.0。

4

1 回答 1

1

有些东西变了,但你不知道。然后你需要遵循所见即所得的模式。应用程序启动时发生错误。问题出struts-plugin.xml在 struts2-jquery-grid 插件内部。exceptionipnorg.xml.sax.SAXParseException告诉您无法解析此文件,因为它无效或 DTD 错误。然后值得开始阅读插件

Struts 2 插件包含扩展、替换或添加到现有 Struts 框架功能的类和配置。除了 JAR 文件之外,还可以通过将其 JAR 文件添加到应用程序的类路径来安装插件,以实现插件本身可能具有的任何依赖项。要配置插件,JAR 应该包含一个struts-plugin.xml文件,其格式与普通struts.xml文件相同。

当 Struts2 应用程序启动时,它正在寻找配置文件,例如struts.xml, struts-default.xml, struts-plugin.xml.

该框架首先加载其默认配置,然后加载在类路径上的其他 JAR 中找到的任何插件配置文件,最后加载bootstrap struts.xml

  • struts-default.xml(捆绑在核心 JAR 中)

  • struts-plugin.xml(尽可能多的可以在其他 JAR 中找到)

  • struts.xml(由您的应用程序提供)

由于struts.xml文件总是最后加载,它可以利用与分发捆绑在一起的插件提供的任何资源,或应用程序可用的任何其他插件。


struts-plugin.xml应该位于类路径上的配置文件已由 SAX 解析器解析,以根据文档提供的文档 DTD 进行验证。它在解析文档时引发了异常。这意味着该文档无效,因为它的结构错误。

行号和列号指示无效结构的开始位置。

第一次确保引用的文件存在并且可以通过 URL 访问。

您可以尝试替换错误的配置文件或它的 DTD,并确保每个项目只存在一个同名的配置文件。

您应该将此文件与源文件一起保存以进行修改。打包项目时,文件应复制到WEB-INF/classes存档中war。确保文件与源文件夹中的文件相同。

在构建之前清理项目以删除先前构建使用的文件。

如果服务器上发生了某些变化,即 Java 品牌/版本安装。然后你需要手动升级它。

于 2021-12-11T15:17:46.010 回答