继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Struts2.5.2搭建环境注意问题

做一个善良的人
关注TA
已关注
手记 12
粉丝 14
获赞 205

Struts2.5在配置过程中,有几点需要注意:

  1. 导入jar包,必备jar包如下:尤其是log4j.jar和javassist.jar为必备包
    图片描述

  2. 在web.xml中添加过滤器。需要注意的是filter-class的值,相对于之前的版本发生了变化。
<filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
  <filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

过期的写法如下:

<filter>
  <filter-name>struts2</filter-name>
  <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter> 
或者
<filter>
<filter-name>action2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter> 

3.如果你把第一步的几个jar包,放到了User Library中,且并未复制到WEB-INF/lib目录下,而是引用的User Libraries。那么程序编译没问题,但是等到启动tomcat的时候,就会报各种类找不到的错误。比如错误如下:
严重: Exception starting filter struts2
java.lang.ClassNotFoundException: org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter...
说找不到StrutsPrepareAndExecuteFilter类,可是明明就在struts2-core.jar中的org.apache.struts2.dispatcher.filter下有这个类啊?原因是:eclipse发布项目的时候并未自动将引用的jar包copy到目标位置,导致编译器找不到所使用的class。
解决方案:
设置eclipse发布项目的选项,project上点击右键,选择左侧Deployment Assembly,右侧显示的列表是项目发布目录:
图片描述
点击Add,弹出的窗口中选择 Java Build Path Entries,点击Next:
图片描述
窗口中会显示你这个项目中所使用的User Libraries,选择,点击Finish即可:
图片描述
返回列表,记得一定要点击 Apply,或者OK,完成。再次启动Tomcat,之前的错误就都消失了。
图片描述

打开App,阅读手记
12人推荐
发表评论
随时随地看视频慕课网APP

热门评论

怒赞楼主!真滴靠谱!

楼主好人哪,搞了几个小时没搞出来,看完你的解释就ok了,太感谢了,必须收藏

Myeclipse 要怎么做不报

Exception starting filter struts2
java.lang.ClassNotFoundException: org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter...


查看全部评论