Struts2中出现严重: Dispatcher initialization failed错误
严重: 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" "http://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" "http://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改为其他值即可.
补充:Web开发 , Jsp ,