欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Struts2中出现严重: Dispatcher initialization failed错误

程序员文章站 2023-01-22 21:24:01
严重: dispatcher initialization failed unable to load configuration. - action - file:/d:/apache%20sof...

严重: dispatcher initialization failed

unable to load configuration. - action - file:/d:/apache%20software%20foundation/tomcat%206.0/webapps/structs2/web-inf/classes/struts.xml:23:79
at com.opensymphony.xwork2.config.configurationmanager.getconfiguration(configurationmanager.java:58)
at org.apache.struts2.dispatcher.dispatcher.init_preloadconfiguration(dispatcher.java:374)
at org.apache.struts2.dispatcher.dispatcher.init(dispatcher.java:418)
.

.

.

无法加载配置,检查下jar包是否完整!
除了
commons-logging-1.0.4.jar
freemarker-2.3.12.jar
ognl-2.6.11.jar
struts2-core-2.1.8.jar
xwork-2.1.1.jar

这五个核心lib要复制外,
依次加载下面两个lib
commons-fileupload-1.2.1.jar

commons-io-1.3.2.jar

另外,还要注意是不是原先的代码有问题!
仔细看下你的错误信息
unable to load configuration. - action -file:/d:/apache%20software%20foundation/tomcat%206.0/webapps/structs2/web-inf/classes/struts.xml:23:79
它不能加载struts.xml这里的配置,你仔细检查下那个文件的代码!

 


在自己的例子中错误的原因是:

 

 

 <?xml version="1.0" encoding="gbk"?> 
<!doctype struts public 
        "-//apache software foundation//dtd struts configuration 2.1.7//en" 
        "https://struts.apache.org/dtds/struts-2.1.7.dtd"> 
<!-- 指定struts 2配置文件的根元素 --> 
<struts> 
    <!-- 指定全局国际化资源文件 --> 
    <constant name="struts.custom.i18n.resources" value="mess"/> 
    <!-- 指定国际化编码所使用的字符集 --> 
    <constant name="struts.i18n.encoding" value="utf-8"/> 
    <!--指定constant的name为devmode表示处于开发模式,value=true修改配置文件内容自动热替换而不需要每次重新发布--> 
    <constant name="struts.devmode" value="true"/> 
    <!-- 所有的action定义都应该放在package下,struts2中通过package来管理action,这里的包名name并不对应java类中的包 --> 
    <package name="wbb" namespace="/" extends="struts-default"> 
        <action name="loginpro" class="w_basketboy.ajax.action.loginaction"> 
            <result name="success" type="stream"> 
                <param name="contenttype">/html</param> 
                <param name="inputname">result</param> 
            </result> 
            <result name="login">login.jsp</result> 
        </action> 
    </package> 
    <package name="wbb" extends="json-default"> 
        <action name="jsonexample" class="w_basketboy.ajax.action.jsonexample"> 
            <!--配置类型的json的result--> 
            <result type="json"> 
                <!--为该result指定参数--> 
                <param name="nocache">true</param> 
                <param name="contenttype">text/html</param> 
            </result> 
        </action> 
        <action name="*"> 
            <result>/{1}.jsp</result> 
        </action> 
    </package> 
</struts> 

<?xml version="1.0" encoding="gbk"?>
<!doctype struts public
        "-//apache software foundation//dtd struts configuration 2.1.7//en"
        "https://struts.apache.org/dtds/struts-2.1.7.dtd">
<!-- 指定struts 2配置文件的根元素 -->
<struts>
    <!-- 指定全局国际化资源文件 -->
    <constant name="struts.custom.i18n.resources" value="mess"/>
    <!-- 指定国际化编码所使用的字符集 -->
    <constant name="struts.i18n.encoding" value="utf-8"/>
    <!--指定constant的name为devmode表示处于开发模式,value=true修改配置文件内容自动热替换而不需要每次重新发布-->
    <constant name="struts.devmode" value="true"/>
    <!-- 所有的action定义都应该放在package下,struts2中通过package来管理action,这里的包名name并不对应java类中的包 -->
    <package name="wbb" namespace="/" extends="struts-default">
        <action name="loginpro" class="w_basketboy.ajax.action.loginaction">
            <result name="success" type="stream">
                <param name="contenttype">/html</param>
                <param name="inputname">result</param>
            </result>
            <result name="login">login.jsp</result>
        </action>
    </package>
    <package name="wbb" extends="json-default">
        <action name="jsonexample" class="w_basketboy.ajax.action.jsonexample">
            <!--配置类型的json的result-->
            <result type="json">
                <!--为该result指定参数-->
                <param name="nocache">true</param>
                <param name="contenttype">text/html</param>
            </result>
        </action>
        <action name="*">
            <result>/{1}.jsp</result>
        </action>
    </package>
</struts>


这里的两个package的name是一样的,package中的name属性相当于id,不能重复,将其中一个name改为其他值即可.