现在的位置: 首页 > 综合 > 正文

关于Struts 2的正确配置

2013年08月01日 ⁄ 综合 ⁄ 共 2945字 ⁄ 字号 评论关闭

前些天刚好开始Struts的学习,但是在配置Struts
2
的时候就遇到了很大的障碍,我使用的Struts
2
版本是2.2.1(即Struts
2.2.1
),我参考了《精通J2EE(第二版)里的有关Struts
2
的配置内容,该书使用的是Struts
2.0.9)
。我首先从Struts
2.2.1
lib文件下复制了“freemarker-2.3.16.jarognl-3.0.jarstruts2-core-2.2.1.jarxwork-core-2.2.1.jar”,然后粘贴在了项目的lib文件下,也可以通过“Add
External JARs
”的形式导入,但是如上所作后,在启动Tomcat时出现了如下的错误:

警告: Could not create
JarEntryRevision for [jar:file:/E:/Programming/apache-tomcat-6.0.26/webapps/Struts2/WEB-INF/lib/struts2-core-2.2.1.jar]

...

2010-9-24 11:16:02 com.opensymphony.xwork2.util.logging.jdk.JdkLogger info

信息: Parsing configuration
file [struts-default.xml]

2010-9-24 11:16:02 com.opensymphony.xwork2.util.logging.jdk.JdkLogger error

严重: Dispatcher initialization
failed

Unable to load configuration. - bean - jar:file:/E:/Programming/apache-tomcat-6.0.26/webapps/Struts2/WEB-INF/lib/struts2-core-2.2.1.jar!/struts-default.xml:48:178

    ...

Caused by: Unable to load bean: type:org.apache.struts2.dispatcher.multipart.MultiPartRequest class:org.apache.struts2.dispatcher.multipart.JakartaMultiPartRequest
- bean - jar:file:/E:/Programming/apache-tomcat-6.0.26/webapps/Struts2/WEB-INF/lib/struts2-core-2.2.1.jar!/struts-default.xml:48:178

    ...

Caused by: java.lang.NoClassDefFoundError: org/apache/commons/fileupload/RequestContext

    ...

2010-9-24 11:16:02 org.apache.catalina.core.StandardContext filterStart

严重: Exception starting
filter struts2

Unable to load configuration. - bean - jar:file:/E:/Programming/apache-tomcat-6.0.26/webapps/Struts2/WEB-INF/lib/struts2-core-2.2.1.jar!/struts-default.xml:48:178

    ...

Caused by: Unable to load configuration. - bean - jar:file:/E:/Programming/apache-tomcat-6.0.26/webapps/Struts2/WEB-INF/lib/struts2-core-2.2.1.jar!/struts-default.xml:48:178

    ... 

Caused by: Unable to load bean: type:org.apache.struts2.dispatcher.multipart.MultiPartRequest class:org.apache.struts2.dispatcher.multipart.JakartaMultiPartRequest
- bean - jar:file:/E:/Programming/apache-tomcat-6.0.26/webapps/Struts2/WEB-INF/lib/struts2-core-2.2.1.jar!/struts-default.xml:48:178

    ... 

Caused by: java.lang.NoClassDefFoundError: org/apache/commons/fileupload/RequestContext

    ...

Caused by: java.lang.ClassNotFoundException:
org.apache.commons.fileupload.RequestContext

    ...

2010-9-24 11:16:02 org.apache.catalina.core.StandardContext start

严重: Error filterStart

2010-9-24 11:16:02 org.apache.catalina.core.StandardContext start

严重: Context [/Struts2]
startup failed due to previous errors

 

这些错误很让我摸不着头脑,经多方查阅资料后,在Struts 2.2.x中应该导入如下7JAR文件

1)   commons-fileupload-1.2.1.jar

2)   commons-io-1.3.2.jar

3)   freemarker-2.3.16.jar

4)   javassist-3.7.ga.jar

5)   ognl-3.0.jar

6)   struts2-core-2.2.1.jar

7)   xwork-core-2.2.1.jar

8) commons-lang-2.5.jar

 

  1. asm-x.x.jar
  2. asm-commons-x.x.jar
  3. asm-tree-x.x.jar
  4. commons-fileupload-X.X.X.jar
  5. commons-io-X.X.X.jar
  6. commons-lang-X.X.jar
  7. freemarker-X.X.X.jar
  8. javassist-X.X.X.jar
  9. ognl-X.X.X.jar
  10. struts2-core-X.X.X.X.jar
  11. xwork-core-X.X.X.jar

 

 

其实,这里还有一个小窍门,我们可以将Struts 2.2.x根目录下的apps文件夹下的struts2-blank-2.2.1.war文件进行解压,然后找到WEB-INF下的lib目录,我们可以发现里面列出了7JAR文件,刚好这7个就是我们配置Struts
2.2.x
需要导入的JARs文件:

 

现在服务器应该就可以正常启动了!

 

抱歉!评论已关闭.