`

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> 

启动服务器,果然搞定!

分享到:
评论

相关推荐

    struts2常见错误

    然而,如同任何复杂的框架一样,Struts2在开发和部署过程中可能会遇到一些常见错误。以下是一些典型的问题及相应的解决方案: 1. **异常启动过滤器Struts2:No mapping found for dependency** 这个错误通常是因为...

    struts常见错误及其分析

    如果在应用启动时遇到`Servlet Initialization Exception`,可能是由于Struts配置文件格式错误或缺失,或者在struts-config.xml中引用了不存在的类。仔细检查配置文件,确保所有元素和属性都符合规范。 8. **...

    struts2错误集合

    ### Struts2错误集合解析与解决方案 #### 一、类型转换异常:`java.lang.ClassCastException` **问题描述**: 在尝试从session中获取一个整型数值时,由于类型不匹配导致了`ClassCastException`。 **代码示例**:...

    Struts常见错误的全面汇总

    这个异常通常发生在Web应用启动时,Struts框架初始化出现问题。检查ActionServlet的初始化参数是否正确,以及`struts-config.xml`配置文件是否存在语法错误或遗漏。 ### 10. ResourcesnotdefinedforValidator 当...

    struts2错误集合.txt

    ### Struts2错误集合知识点详解 #### 一、类型转换问题 在开发过程中,经常会遇到类型转换的问题。这里提到了几种常见的类型转换方法。 1. **`java.lang.ClassCastException`:** 当尝试将一个对象强制转换为另一个...

    struts2.0.14官方jar包

    4. 错误处理和国际化:Struts2提供了错误处理机制和资源文件支持,方便进行多语言开发。 在lib目录下,通常会包含Struts2框架所需的多个jar文件,如struts2-core.jar、struts2-convention-plugin.jar、struts2-dojo...

    struts错误的总结

    在学习Struts的过程中,新手可能会遇到各种错误,本文将针对其中一种常见问题进行详细解答,即"JSF运行时出现javax.servlet.jsp.JspException: Cannot find FacesContext"的处理方法。 这个问题通常是由于在JSF应用...

    struts2项目部署

    8. **错误排查**:如果遇到问题,检查服务器日志(通常在`logs`目录下)以获取错误信息。此外,确保Struts2的JAR文件和所有依赖都在`lib`目录下,并已被正确引入。 9. **测试**:通过访问不同的URL来测试Action是否...

    struts2中,在tomcat启动时候总是出现严重

    在描述中提到的问题是关于Tomcat服务器在启动时遇到与Struts2相关的严重错误。这通常意味着应用的配置或者Struts2的核心组件出现了问题。下面将详细分析可能出现的问题以及解决策略。 首先,当我们在启动Tomcat时...

    struts代码

    在`web.xml`中配置Struts2过滤器是启动Struts2框架的关键步骤。通过定义`FilterDispatcher`,可以确保所有进入应用的HTTP请求都会经过Struts2框架的处理,进而实现对请求的拦截、解析和分发。 ```xml ...

    Struts2.5.2的配置及问题解决

    例如,日志配置不完整可能导致Tomcat无法启动或运行错误。在这种情况下,需要检查是否导入了log4j相关的jar包,以支持Struts2的日志输出。如果出现找不到类的错误,那通常是因为缺少必要的依赖jar包。确保导入所有...

    Struts Web设计与开发大全

    2. 配置与初始化:详细解释struts-config.xml和web.xml的配置,以及如何启动和调试Struts应用。 3. 表单处理:ActionForm的使用,以及表单验证的实现。 4. 控制流程:Action类的编写,转发和重定向的使用,以及结果...

    Struts2实现的注册

    最后,别忘了在web.xml中配置Struts2的前端控制器DispatcherServlet,以启动Struts2的拦截器链。 总的来说,"Struts2实现的注册"涵盖了以下几个核心知识点: 1. Struts2框架的基本使用,包括Action、ActionSupport...

    Netbeans Struts2插件

    3. **配置文件编辑器**:NetBeans Struts2插件内置了对`struts.xml`配置文件的特殊编辑器,提供语法高亮、错误检查以及自动格式化等功能,确保配置文件的正确性。 4. **调试支持**:插件集成了Struts2的调试工具,...

    struts1做的计算器

    4. JSP页面:包括输入页面(用户输入数字)、结果显示页面(显示计算结果)以及可能的错误提示页面。 5. JavaBean:可能包含业务逻辑,如计算方法。 在开发过程中,开发者通常会使用Eclipse中的Struts插件来辅助...

    tomcat报错Unable to find 'struts multipart saveDir解决

    1. **配置错误**:检查你的struts-config.xml或struts.properties文件,确认`struts.multipart.saveDir`的路径设置正确。路径应指向服务器上的一个实际存在的目录,且该目录应有适当的写权限。 2. **目录不存在**:...

    struts2与Hibernate整合

    Struts2和Hibernate是两种非常重要的Java开源框架,它们在企业级Web开发中扮演着核心角色。Struts2是一款强大的MVC(Model-View-Controller)框架,它为构建基于J2EE的Web应用程序提供了结构化的支持。而Hibernate则...

    Struts驱动包(jar)

    在这个“Struts驱动包”中,包含了Struts 1.2.9版本的必要组件,以及一个空项目,可以作为学习或快速启动新项目的基础。 1. **Struts框架核心组件**: - `struts-core.jar`:这是Struts框架的核心库,包含Action...

    struts框架

    主要通过编辑web.xml文件添加Struts2核心过滤器的配置,这一步是启动Struts2框架所必需的。Struts2提供了灵活的配置方式,支持通过XML文件、注解以及Java代码进行配置。 在搭建一个基于Struts2的简单应用时,例如一...

    struts2简单模拟

    6. **异常处理**:Struts2提供了一套完整的异常处理机制,可以捕获并控制应用程序中可能出现的异常,使开发者能够优雅地处理错误。 7. **国际化支持**:Struts2支持多语言环境,通过资源文件可以轻松实现应用程序的...

Global site tag (gtag.js) - Google Analytics