严重: Dispatcher initialization failed java.lang.RuntimeException: java.lang.reflect.Invocatio

错误提示:严重: Dispatcher initializationfailed java.lang.RuntimeException:java.lang.reflect.InvocationTargetException

解决方法:
1、核对WEB-INF目录下的lib包 是否包含strut2的8个核心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, strut2的8个核心jar包是使用strut2必须导入的最少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.StrutsPrepareAndExecuteFilter   
</filter-class>   
</filter>   
<filter-mapping>   
<filter-name>struts2</filter-name>   
<url-pattern>/*</url-pattern>   
</filter-mapping>   
</web-app>
####################################################
  实际上,无论struts2是哪个版本的,都可以在web.xml加入清除缓存的过滤器,但这不是必须的
<filter>
<filter-name>struts-cleanup</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ActionContextCleanUp
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts-cleanup</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
strtus2要在web.xml里面配置这一项作用:
 清除缓存,帮我们进行清理
在做上传文件的时候,要在web.xml中增加ActionContextCleanUp这个filter,如果不增加,会发生第一次上传取不到文件的情况

其实: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

struts.xml文件头是从struts2-2.2.1-all\struts-2.2.1\apps里的任意文件拷贝的!
--------------------------------------------------------------------------------------------------------------------------------------------------------
4、通用解决办法
  其实可以把 struts-2.3.4 \apps\struts2-blank-2.2.1.war下的lib中所有jar包导入到当前项目的 WEB-INF/lib目录下。( struts-2.3.4 \apps\目录下是所有的示例文件)
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值