公告:
[论坛活动] Bambook程序达人大赛,打造个性电子书,赢取60万大奖[意见反馈][官方博客] 完全解决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()
view plaincopy to clipboardprint?
01.if (configDigester != null) {
02. return (configDigester);
03. }
04.
05. // Create a new Digester instance with standard capabilities
06. configDigester = new Digester();
07. configDigester.setNamespaceAware(true);
08. configDigester.setValidating(this.isValidating());//注意此处!!!
09. configDigester.setUseContextClassLoader(true);
10. configDigester.addRuleSet(new ConfigRuleSet());
11.
12. for (int i = 0; i < registrations.length; i += 2) {
13. URL url = this.getClass().getResource(registrations[i + 1]);
14.
15. if (url != null) {
16. configDigester.register(registrations[i], url.toString());
17. }
18. }
19.
20. this.addRuleSets();
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();
注意标注【注意的代码行】,其调用的代码如下:
view plaincopy to clipboardprint?
01.private boolean isValidating() {
02. boolean validating = true;
03. String value = getServletConfig().getInitParameter("validating");
04.
05. if ("false".equalsIgnoreCase(value) || "no".equalsIgnoreCase(value)
06. || "n".equalsIgnoreCase(value) || "0".equalsIgnoreCase(value)) {
07. validating = false;
08. }
09.
10. return validating;
11. }
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的地方加上
view plaincopy to clipboardprint?
01.<init-param>
02. <param-name>validating</param-name>
03. <param-value>false</param-value>
04. </init-param>
<init-param>
<param-name>validating</param-name>
<param-value>false</param-value>
</init-param>
启动服务器,果然搞定!
分享到:
相关推荐
11.2.5 ActionErrors(错误处理) 11.2.6 DispatchAction(多动作控制器) 11.3 利用Struts实现用户登录的示例 11.6.1 编写实现登录的页面login.jsp 11.6.2 编写存储登录用户信息的类User.java 11.6.3 编写控制器...
com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:69) 提示各种奇怪的启动错误,原因就是缺少包,这里面是必须的包
11.2.5 ActionErrors(错误处理) 11.2.6 DispatchAction(多动作控制器) 11.3 利用Struts实现用户登录的示例 11.6.1 编写实现登录的页面login.jsp 11.6.2 编写存储登录用户信息的类User.java 11.6.3 编写控制器...
11.2.5 ActionErrors(错误处理) 11.2.6 DispatchAction(多动作控制器) 11.3 利用Struts实现用户登录的示例 11.6.1 编写实现登录的页面login.jsp 11.6.2 编写存储登录用户信息的类User.java 11.6.3 编写控制器...
目前在将struts2部署到weblogic8.1.6的时候,总会提示很多莫名其妙的错误,后来经过查找时因为struts2是需要jdk1.5的,但是weblogic是使用的是1.4,所以在使用的时候需要将struts2和相关的jar文件用jdk1.4编译一下。...
启动Tomcat时错误如下: XML-22103: (Fatal Error) DOMResult can not be this kind of node. 2010-1-3 21:30:49 org.apache.catalina.core.StandardContext filterStart 严重: Exception starting filter struts2 ...
2.6.2. Struts的强项........................................................................................................58 Struts in Action 中文版 Lastest Revised:10/14/2005 10:27:00 AM ...
测试挑战犯错误太容易了两个测试用例来自StrutsTestCase的帮助成功的测试用例!用DbUnit进行测试反复测试StrutsStruts的集成测试虽然Struts正在慢慢退出Web框架的历史舞台,但它的遗产仍然存在,存在的形式主要是...
JBOSS启动struts2程序log错误信息
1.1.1. 谁创建了Struts?...................................................................................................19 1.1.2. 为什么Struts 要开源?....................................................
(B) struts框架是通过Filter启动的 (C) FilterDispatcher类中的init()方法中将会读取类路径下默认的配置文件struts.xml完成初始化操作 (D) struts2读取到struts.xml的内容后,会将内容封装进Action对象中并存放在...
折腾了一下午,再报了各种错误之后终于把SSH+tiles的整合的JAR包给搞定了。 SSH的版本如下: Struts-2.3.4 Spring-2.0.6 Hibernate-3.6.10 里面还有连数据库的jar---mysql-connector-java-5.1.12-bin.jar 最后启动...
实验通常被称为A / B拆分测试,是转化率优化的核心Struts。 |先决条件进行设定在GitHub上分叉此存储库将分叉的存储库(不是此原始存储库)克隆到本地环境安装必要的NPM软件包: npm install创建和启动实验只需4个...
在 struts 2 的开发中,经常启动tomcat会报一种错误,就是缺少这个jar包导致的!
在struts2的开发中,经常启动tomcat会报一种错误,就是缺少这个jar包导致的,所以共享下
这个更新解决了几个的程序错误. 这个工具是完全免费的Java开发工具,绿色软件,无需安装,主要给java初学者和一般的个人开发者使用, 使他们更快学好JAVA技术.请不要用于商业用途,它适合学习用途.目前主要功能有java...
自动部署和自动启动,加入文件的导航功能,实现了方便的文件切换,改进了显示方式,屏幕显示更加平稳.FirstJava2主要特点:速度快,功能简单,管用,反应敏捷,编辑辅助方式比较高效.好用! 加入三个实用功能,可以减少不少工作...
11.2.5 ActionErrors(错误处理) 11.2.6 DispatchAction(多动作控制器) 11.3 利用Struts实现用户登录的示例 11.6.1 编写实现登录的页面login.jsp 11.6.2 编写存储登录用户信息的类User.java 11.6.3 编写控制器...
1.8.1 Tomcat端口被占用导致不能启动 1.8.2 Eelipse没有创建JSP项 1.9 精彩回顾 第2章 JavaWeb开发必修课 ——JSP语法 2.1 本章学习任务 2.1.1 本章知识体系 2.1.2 实例开发任务 2.2 什么是JSP 2.2.1 JSP简介 2.2.2...