【问题标题】:Element type "struts" must be declared. at (null:26:9) org.xml.sax.SAXParseException in Struts 2 using JQuery Grid plugin必须声明元素类型“struts”。在 (null:26:9) 使用 JQuery Grid 插件的 Struts 2 中的 org.xml.sax.SAXParseException
【发布时间】:2022-01-13 11:09:16
【问题描述】:

自今天中午 IST 以来,我们正在低于错误。应用程序几年前运行良好,但从今天中午开始出现此错误。

必须声明元素类型“struts”。在(空: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。

【问题讨论】:

  • 有些东西改变了;可能值得弄清楚是什么。我要考虑的第一件事是将您的代码库更新到更新的版本——S2.1.6 已经有 12 年历史了,并且不久前就停产了。
  • 感谢 Roman C 的建议。我已经将应用程序升级到 Struts2.3.16 , Struts2-jquery-pluging 到 3.7.0 和 struts2-jquery-grid-plugin 到 3.7.0 然后它开始工作了。

标签: java jquery tomcat struts2 struts2-jquery-grid


【解决方案1】:

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

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

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

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

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

  • struts-plugin.xml(与其他 JAR 一样多)

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

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


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

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

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

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

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

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

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

【讨论】:

  • 欢迎,答案左侧的复选框。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-07
  • 1970-01-01
相关资源
最近更新 更多