1.
严重: Exception starting filter struts2
java.lang.ClassNotFoundException: org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
2.
严重: Dispatcher initialization failed
java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
缺少包:
javassist-3.11.0.GA.jar
3.
严重: Could not create JarEntryRevision for [jar:file:/D:/application/apache-tomcat-6.0.30/webapps/SSH1/WEB-INF/lib/struts2-core-2.3.4.jar]!
java.lang.NoClassDefFoundError: org/apache/commons/io/FileUtils
缺少包:
commons-io-2.0.1.jar
4.
严重: Exception starting filter struts2
java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUtils
缺少包:commons-lang3-3.1.jar
常见解决方法:
1、核对WEB-INF目录下的lib包 下的jar包
文件名
说
明
struts2-core-2.3.4.1.jar
Struts 2框架的核心类库
Xwork-core-2.3.4.1.jar
XWork类库,Struts 2的构建基础
Ognl-3.0.5.jar
Struts 2使用的一种表达式语言类库
freemarker-2.3.19.jar
Struts 2的标签模板使用类库
commons-fileupload-1.2.2.jar
Struts 2文件上传依赖包
javassist-3.11.0.GA.jar
代码生成工具包
commons-lang3-3.1.jar
Apache语言包,是java.lang包的扩展
commons-io-2.0.1.jar
Apache IO包
注意2.1以前是没有commons-fileupload-1.2.1.jar,
2、 如果struts2版本是2.1以前
web.xml配置过滤器的时候应该是这样:
<web-app>
<filter>
<filter-name>struts2</filter-name>
<filter-class> org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
如果struts2 版本是2.1以上
web.xml配置
<web-app>
<filter>
<filter-name>struts2</filter-name>
<filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteF ilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
####################################################
其实:struts2 版本在2.1以上也可以2中的web.xml配置
3、
在使用 struts-2.2以上版本时,必 须加入javassist-**.ga.jar,否则就会出现上面的错误提示,而这个在struts-2.3.4\lib(其中struts-2.3.4是struts的目录)下是没有的, 需要在 struts-2.3.4 \apps\struts2-blank-2.2.1.war下的lib中找到并加入到当前项目下WEB-INF/lib目录下。
--------------------------------------------------------------------------------------------------------------------------------------------------------
4、通用解决办法
其实可以把
struts-2.3.4
\apps\struts2-blank-2.2.1.war下的lib中所有jar包导入到当前项目的
WEB-INF/lib目录下。(
struts-2.3.4
\apps\目录下是所有的示例文件)
1、核对WEB-INF目录下的lib包 下的jar包
struts2-core-2.3.4.1.jar
Xwork-core-2.3.4.1.jar
Ognl-3.0.5.jar
freemarker-2.3.19.jar
commons-fileupload-1.2.2.jar
javassist-3.11.0.GA.jar
commons-lang3-3.1.jar
commons-io-2.0.1.jar
注意2.1以前是没有commons-fileupload-1.2.1.jar,
2、 如果struts2版本是2.1以前
web.xml配置过滤器的时候应该是这样:
<web-app>
<filter>
<filter-name>struts2</filter-name>
<filter-class> org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
如果struts2 版本是2.1以上
web.xml配置
<web-app>
<filter>
<filter-name>struts2</filter-name>
<filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteF
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
####################################################
其实:struts2 版本在2.1以上也可以2中的web.xml配置
3、
在使用 struts-2.2以上版本时,必 须加入javassist-**.ga.jar,否则就会出现上面的错误提示,而这个在struts-2.3.4\lib(其中struts-2.3.4是struts的目录)下是没有的, 需要在 struts-2.3.4 \apps\struts2-blank-2.2.1.war下的lib中找到并加入到当前项目下WEB-INF/lib目录下。
所以在struts2.1以上的版本要引入的包应该是8个包
commons-fileupload-1.2.1.jar,
commons-io-1.3.2.jar
commons-logging-1.0.4.jar
freemarker-2.3.16.jar
javassist-3.7.ga.jar
ognl-3.0.jar
struts2-core-2.2.1.jar
xwork-core-2.2.1.jar
--------------------------------------------------------------------------------------------------------------------------------------------------------
4、通用解决办法