完全解决struts启动时报错:The content of element type "struts-config" must match "(data-sources?,form-beans?,global-exceptions?,global-forwards?,action-mappings?,controller?,message-resources*
最近新建一个项目,发现tomcat启动的时候时,控制台一直报告异常信息:
10 12 22 09:49:016,306 ERROR Digester:1463 - Parse Error at line 21 column 17: The content of element type "struts-config" must match "(data-sources?,form-beans?,global-exceptions?,global-forwards?,action-mappings?,controller?,message-resources*,plug-in*)".
org.xml.sax.SAXParseException: The content of element type "struts-config" must match "(data-sources?,form-beans?,global-exceptions?,global-forwards?,action-mappings?,controller?,message-resources*,plug-in*)".
。。。。。。
虽然这不影响系统的运行,但看到每次启动就报这一堆异常信息,心里也很不爽。
在网上搜索了下解决办法,但是大部分都是只有提问,没有结果,或者就是解决办法不管用。于是,下决心自己去解决。认真查看异常信息,发现如下重要信息:
at org.apache.struts.action.ActionServlet.parseModuleConfigFile(ActionServlet.java:738)
at org.apache.struts.action.ActionServlet.initModuleConfig(ActionServlet.java:687)
于是,找到对应源代码:ActionServlet中的方法initConfigDigester()
if (configDigester != null) {
return (configDigester);
}
// Create a new Digester instance with standard capabilities
configDigester = new Digester();
configDigester.setNamespaceAware(true);
configDigester.setValidating(this.isValidating());//注意此处!!!
configDigester.setUseContextClassLoader(true);
configDigester.addRuleSet(new ConfigRuleSet());
for (int i = 0; i < registrations.length; i += 2) {
URL url = this.getClass().getResource(registrations[i + 1]);
if (url != null) {
configDigester.register(registrations[i], url.toString());
}
}
this.addRuleSets();
注意标注【注意的代码行】,其调用的代码如下:
private boolean isValidating() {
boolean validating = true;
String value = getServletConfig().getInitParameter("validating");
if ("false".equalsIgnoreCase(value) || "no".equalsIgnoreCase(value)
|| "n".equalsIgnoreCase(value) || "0".equalsIgnoreCase(value)) {
validating = false;
}
return validating;
}
分析到此处,大家相信都知道怎么回事了。赶紧前往web.xml配置org.apache.struts.action.ActionServlet的地方加上
<init-param>
<param-name>validating</param-name>
<param-value>false</param-value>
</init-param>
启动服务器,果然搞定!
转载: http://blog.csdn.net/allin01/archive/2010/12/22/6091008.aspx
分享到:
相关推荐
Element UI 中国省市区级联数据,根据 element-china-area-data 5.0.2版本调整城市数据,市辖区更改为城市名称
NULL 博文链接:https://stillcoolme.iteye.com/blog/2314109
simple-element-resize-detector, 使用隐藏的iframe观察元素大小的变化 simple-element-resize-detector 使用隐藏的iframe观察元素的大小。收费的JSFiddle演示安装npm i -S simple-element-resize-detector用法
The content of element type “font-face” is incomplete, it must match “((font-face-src,(desc|title|metadata)*)|((desc|title|metadata) +,font-face-src,((desc|title|metadata))*?))”. 解决办法: 源代码...
vue-element-admin-4.4.0.zip
element-plus-2.2.12 本地资源文件,适用于Vue 3编程,是流行的Vue 3的组件库。 资源适用于离线开发,内网使用。 (本资源为 element-plus-2.2.12 保存而来,如有侵权请联系我删除。)
Vue 是一套用于构建用户界面的渐进式JavaScript框架。vue在前端技术中使用越来越多,也成为了主流框架,element UI是由饿了么团队开发的,VUE 搭配element是最佳组合
vue-element-admin-i18n.zip国际化
重用现有element-plus组件库。对于小白来说怎么在Vuedraggable里使用element组件提供了实际应用参考。table样式完全模拟了el-table组件样式。看官方文档两天也不如直接看一个完整的实例。 需要安装依赖:npm i -S ...
vue-element-admin-master3.9.3.zip
vue-element-admin-master vue@2.6.0 element-ui@2.7.0
element-ui-2.15.6离线安装包,包含依赖包
适用于element-plus 的 Cascader三级联动地区选择---json数据,
vue-element-admin-master (1).zip
vue-element-admin-tinymce源码,下载到本地,适当配置后,直接嵌入,不再使用cdn
vue-element-admin-master源码,快速搭建vue整合工程,好用
前端开源库-react-element-to-jsx-string将react元素转换为JSX字符串,将reactElement转换为相应的JSX字符串。
wordpress插件:elementor-free-v3.1.4+elementor-pro-v3.2.1.zip 安装方式: 1.安装elementor-free-v3.1.4 2.安装elementor-pro-v3.2.1 如果已安装过elementor,建议先备份数据,随后禁用、删除elementor,同时清空...
element UI el-date-picker组件样式更改 popper-class="down-time" 原码是body下的弹出器