`

struts启动错误

    博客分类:
  • web
阅读更多

公告:
[论坛活动] 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> 

启动服务器,果然搞定!

分享到:
评论

相关推荐

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (1)

    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必备包必须

    com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:69) 提示各种奇怪的启动错误,原因就是缺少包,这里面是必须的包

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (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 编写控制器...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (2)

    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 sping hibernate 部署到weblogic8.1.6上所需要jar包

    目前在将struts2部署到weblogic8.1.6的时候,总会提示很多莫名其妙的错误,后来经过查找时因为struts2是需要jdk1.5的,但是weblogic是使用的是1.4,所以在使用的时候需要将struts2和相关的jar文件用jdk1.4编译一下。...

    在老项目中加入struts2,xml报错

    启动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 ...

    Struts in Action中文版

    2.6.2. Struts的强项........................................................................................................58 Struts in Action 中文版 Lastest Revised:10/14/2005 10:27:00 AM ...

    追求代码质量:测试Struts遗留的应用程序

    测试挑战犯错误太容易了两个测试用例来自StrutsTestCase的帮助成功的测试用例!用DbUnit进行测试反复测试StrutsStruts的集成测试虽然Struts正在慢慢退出Web框架的历史舞台,但它的遗产仍然存在,存在的形式主要是...

    server.log

    JBOSS启动struts2程序log错误信息

    struts in Action

    1.1.1. 谁创建了Struts?...................................................................................................19 1.1.2. 为什么Struts 要开源?....................................................

    java考试系统

    (B) struts框架是通过Filter启动的 (C) FilterDispatcher类中的init()方法中将会读取类路径下默认的配置文件struts.xml完成初始化操作 (D) struts2读取到struts.xml的内容后,会将内容封装进Action对象中并存放在...

    SSH+tiles的JAR包

    折腾了一下午,再报了各种错误之后终于把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 最后启动...

    mojito-js-delivery::test_tube:源代码控制的JS拆分测试框架,用于构建和启动AB测试

    实验通常被称为A / B拆分测试,是转化率优化的核心Struts。 |先决条件进行设定在GitHub上分叉此存储库将分叉的存储库(不是此原始存储库)克隆到本地环境安装必要的NPM软件包: npm install创建和启动实验只需4个...

    javassist 最新版

    在 struts 2 的开发中,经常启动tomcat会报一种错误,就是缺少这个jar包导致的!

    javassist-3.7.ga.jar

    在struts2的开发中,经常启动tomcat会报一种错误,就是缺少这个jar包导致的,所以共享下

    FirstJava2主程序的关健更新

    这个更新解决了几个的程序错误. 这个工具是完全免费的Java开发工具,绿色软件,无需安装,主要给java初学者和一般的个人开发者使用, 使他们更快学好JAVA技术.请不要用于商业用途,它适合学习用途.目前主要功能有java...

    Java/jsp编辑开发工具FirstJava2.2完整版

    自动部署和自动启动,加入文件的导航功能,实现了方便的文件切换,改进了显示方式,屏幕显示更加平稳.FirstJava2主要特点:速度快,功能简单,管用,反应敏捷,编辑辅助方式比较高效.好用! 加入三个实用功能,可以减少不少工作...

    《程序天下:J2EE整合详解与典型案例》光盘源码

    11.2.5 ActionErrors(错误处理) 11.2.6 DispatchAction(多动作控制器) 11.3 利用Struts实现用户登录的示例 11.6.1 编写实现登录的页面login.jsp 11.6.2 编写存储登录用户信息的类User.java 11.6.3 编写控制器...

    Java Web编程宝典-十年典藏版.pdf.part2(共2个)

    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...

Global site tag (gtag.js) - Google Analytics