错误提示:严重: Dispatcher initialization failed 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\目录下是所有的示例文件

最新文章

  1. gcc
  2. android studio gradle结构项目引入本地代码
  3. 设置与获取Cookie
  4. ORM查询语言(OQL)简介--高级篇:脱胎换骨
  5. Oracle EBS Form 发布到Server端的注意事项
  6. [转]ORACLE 动态执行SQL语句
  7. UVALive 3989Ladies&#39; Choice(稳定婚姻问题)
  8. WIN7下使用VC2010调试uCOS-II 2.91
  9. 中国省市 JS代码
  10. VSCode调试go
  11. the c programming language 2-3
  12. (转)直接保存对象的数据库——db4o
  13. 【翻译自mos文章】当指定asm disk 为FRA时,11.2.0.3的dbua hang住
  14. mac地址静态捆绑,防止arp欺骗
  15. Problem - D - Codeforces Fix a Tree
  16. encodeURIComponent编码时为什么要编码两次
  17. Centos 安装Sublime text 3
  18. 内网ip范围
  19. JDK并发工具之同步控制
  20. 2017 NAIPC A:Pieces of Parentheses

热门文章

  1. Jenkins自动部署到(远程)tomcat服务器
  2. Django admin管理
  3. django from表单基础知识点
  4. 使用C# + httpWebRequest 解析WMTS服务元数据
  5. JAVA , TOMCAT , AXIS2 环境变量配置
  6. [Python爬虫] 之三:Selenium 调用IEDriverServer 抓取数据
  7. Android 中的长度单位具体解释
  8. C#基础视频教程2 常见数据类型和属性方法
  9. [Linux]vbox 虚拟机加入新磁盘
  10. Linux系统攻略 用UUID在Fstab中挂载分区