日期:2014-05-20  浏览次数:20697 次

struts2.1.6简单的实例加载struts-default.xml的问题
我看的书上的例子使用struts2.0.11

要求只加载
commons-logging-1.0.4.jar
freemarker-2.3.8.jar
ognl-2.6.11.jar
struts2-core-2.0.11.jar
xwork-2.0.4.jar
(HelloWorld实例)

我下载的是struts2.1.6版本,按照书上的写了一个HelloWorld……Tomcat部署的时候出现以下错误:
严重: Exception starting filter struts2
Unable to load configuration. - bean - jar:file:/D:/Tomcat%206.0/webapps/Struts2/WEB-INF/lib/struts2-core-2.1.6.jar!/struts-default.xml:46:178
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:58)
at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:360)
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:403)
at org.apache.struts2.dispatcher.FilterDispatcher.init(FilterDispatcher.java:190)
  ……

然后访问的时候报404错误(Tomcat的webapps目录下可以看得到所有的文件)
俺不知道是怎么回事了,struts.xml的内容如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
  "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"
  "http://struts.apache.org/dtds/struts-2.1.dtd">

<struts>
<package name="Struts2" extends="struts-default">
<action name="HelloWorld" class="ch2.helloworld.HelloWorld">
<result name="success">/ch2/helloworld/success.jsp</result>
<result name="error">/ch2/helloworld/error.jsp</result>
</action>
</package>
</struts>

难道2.0和2.1有较大的差别,还是其他问题?

------解决方案--------------------
这是apache的失误。按照官方文档说明,运行Struts2必须加载5个核心jar包,也就是咱们一开始拷贝的5个jar包,如果你用的是Struts2之前的版本是没有问题的,但是如果去下载这个新版本,就会报如上错误,因为还需要加载另外两个jar包,可是官方的说明文档没有更新

解决方案:在Struts2的解压缩文件夹内的lib文件夹里, 我们找到下列2个jar包 

commons-fileupload-1.2.1.jar 
commons-io-1.3.2.jar 
把他们复制到项目根目录下的\WEB-INF\lib\文件夹内。