struts2中各版本jar包需求及配置设置
struts2中各版本jar包需求及配置设置
[原文:http://wangxinghaoaccp.blog.163.com/blog/static/11581023620113213161958/]
1、核对lib包
commons-fileupload-1.#.#.jar,
commons-io-1.#.#.jar
commons-logging-1.#.#.jar
freemarker-2.#.#.jar
ognl-3.#.jar
struts2-core-2.#.#.jar
xwork-core-2.#.#.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.StrutsPrepareAndExecuteFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
3、
在使用大于struts-2.2.1的版本时,需要引入javassist-3.#.GA.jar!否则,会出现如下的Dispatcher initialization failed错误:
严重: Dispatcher initialization failed
java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
at com.opensymphony.xwork2.inject.ContainerImpl$MethodInjector.inject(ContainerImpl.java:295)
at com.opensymphony.xwork2.inject.ContainerImpl$ConstructorInjector.construct(ContainerImpl.java:431)
at com.opensymphony.xwork2.inject.ContainerBuilder$5.create(ContainerBuilder.java:207)
at com.opensymphony.xwork2.inject.Scope$2$1.create(Scope.java:51)
at com.opensymphony.xwork2.inject.ContainerBuilder$3.create(ContainerBuilder.java:93)
at com.opensymphony.xwork2.inject.ContainerBuilder$7.call(ContainerBuilder.java:487)
at com.opensymphony.xwork2.inject.ContainerBuilder$7.call(ContainerBuilder.java:484)
at com.opensymphony.xwork2.inject.ContainerImpl.callInContext(ContainerImpl.java:574)
at com.opensymphony.xwork2.inject.ContainerBuilder.create(ContainerBuilder.java:484)
at com.opensymphony.xwork2.config.impl.DefaultConfiguration.createBootstrapContainer(DefaultConfiguration.java:252)
at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:193)
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:66)
at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:371)
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:415)
at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:69)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:51)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:275)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:397)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:108)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3800)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4450)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:722)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:583)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: java.lang.reflect.InvocationTargetException
4. struts.xml配置文件
在struts1.x中的配置文件一般叫struts-config.xml(当然也可以是其他的文件名),而且一般放到WEB-INF目录中。而在struts2.x中的配置文件一般为struts.xml,放到WEB-INF的classes目录中(可以在工程的src下创建,build后会自动copy到classes下)。
struts.xml配置文件中,package里元素必须按照一定的顺序排列。这个顺序就是
result-types
interceptors
default-interceptor-ref
default-action-ref
default-class-ref
global-results
global-exception-mappings
action*(就是所有的action放到最后)
否则,会出现错误,提示是:
“The content of element type "package" must match "(result-types?,interceptors?,default-interceptor-ref?,default-action-ref?,default-class-ref?,global-results?,global-exception-mappings?,action*)". ”
5. struts2 的taglib
在Struts2中已经将Struts1.x的好几个标签库都统一了,在Struts2中只有一个标签库"/struts-tags"。这里面包含了所有的Struts2标签。
struts2中各版本jar包需求及配置设置相关推荐
- srtp项目中关于引入Maven仓库中指定版本jar包的一些问题
文章目录 背景 问题 解决方案 打开Maven的搜索 搜索网址打开之后,直接将你想要查找的jar包全名输进去即可,类似于向下面这样. 指定之后仍然代码出错 背景 相信很多和我一样刚入门的新人对于另外一 ...
- spring各版本jar包下载,持续更新中
spring中各jar包的主要功能 Spring AOP:Spring的面向切面编程,提供AOP(面向切面编程)的实现 Spring Aspects:Spring提供的对AspectJ框架的整合 Sp ...
- Nexus-在项目中使用Maven私服,Deploy到私服、上传第三方jar包、在项目中使用私服jar包
场景 Ubuntu Server 上使用Docker Compose 部署Nexus(图文教程): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/ ...
- Android Studio 在项目中引用第三方jar包
在Android Studio项目中引用第三方jar包的方法: 步骤: 1.在build.gradle文件中添加如下代码: 备注:要添加在Android作用域下 sourceSets {main {j ...
- spring各版本jar包和源码
spring各版本jar包和源码 spring历史版本源码:https://github.com/spring-projects/spring-framework/tags spring历史jar包和 ...
- java工程加包_Java工程中添加依赖jar包不起作用问题总结
Java工程中添加依赖jar包不起作用问题总结 此次总结两种方式的依赖问题 1 在Eclipse中添加依赖jar包不起作用问题 这种方式可能是Eclipse缓存,或者Eclipse还没有反应过来.例如 ...
- Andriod开发中正确引入jar包的方式
andriod中如果引入jar包的方式不对就会出现一些奇怪的错误. 工作的时候恰好有一个jar包需要调用,结果用了很长时间才解决出现的bug. 刚开始是这样引用的(eclipse): 右键工程,Bui ...
- ADT17中引入外部JAR包时出现ClassNotFoundException
在ADT17之前,如果要在Android项目中引入外部JAR包,只需在项目属性的Java Build Path中选择Add External JARs,然后选择相应JAR包即可.但是,在升级到ADT1 ...
- 关于如何正确地在android项目中添加第三方jar包
在android项目中添加第三方jar包虽然不是一个很复杂的问题,但是确实给很多开发者带来了不小的困扰.我自己就曾经碰到过calss not found exception ...
最新文章
- Android学习路线
- Android错误之--activity_main cannot be resolved or is not a field
- (006)RN开发之iOS真机调试
- undefined reference to cv::_InputArray::_InputArray(cv::Mat const)
- python将文件夹打包
- SharePoint的WebService的应用
- 跟我学 Java 8 新特性之 Stream 流(七)流与迭代器,流系列大结局
- 前端框架--React props与React state
- netcat、ncc工具使用
- 电机的入门之路系列3--直流电机的工作原理
- 南卫理公会大学 计算机排名,2020年南卫理公会大学Times世界排名
- bootdo框架使用步骤总结
- Linux网络协议栈
- mt4怎么用云服务器跟单,免费好用的跟单系统 神速MT4跟单ea系统使用教程
- Webmax 2.0开启无限量下载
- 计算机附件常用工具,Windows附件常用工具
- 【半年时光-追寻你的足迹】
- 安装应用宝统一链接服务器,数据互通|安卓应用宝部分区服服务器数据互通维护公告...
- uni-app 超详细教程(一)(从菜鸟到大佬)
- IMT和北京大学微纳电子学研究院持续开展战略合作,三位优秀学生获2017年度MEMS专项奖学金
热门文章
- 单线程任务 Task.Factory.StartNew 封装
- 20172318 2017-2018-2 《程序设计与数据结构》实验4报告
- opensuse x64下编译Ice源码(以编译c++为例)
- 基于ZooKeeper的Dubbo注册中心【转】
- ajax的data传参的两种方式
- Github博客地址
- 浅谈C#中一种类插件系统编写的简单方法(插件间、插件宿主间本身不需要通信)...
- Apache配置(转载)
- mpvue微信小程序http请求-fly.js
- android 广播 7.0变化,安卓7.0到底带来了那些变化?