在最后解决完之后,发现这个是新手问题了,呵呵。
问题描述:我看完了struts的新手教学,觉得可以自己写了,于是自己写写。发现在web.xml中加入
<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>
这一段就会出错,404找不到文件。但是去了这个filter就可以找到了,网上查了查,也没仔细查,有个帖子是说把可以运行的lib里的jar文件(struts)的放到你建的lib文件夹下,这样就可以了。
我昨天试了下,没成功,今天试了下就成功了。后来自己测试发现了真正的原因。
我自己写的时候去挑jar文件,我是直接找到复制的,复制了几个有用的,struts-core-x.x.x.jar,xwork-core-x.x.jar,logging什么的,最后没运行起来,其实是少了个文件 javassist-x.x.x.jar没有拷进去。
Javassist dependency was excluded in OGNL, you must remember to include it, except when you are lunching an application on JBoss server
这个文件呢,现在也不好去研究,应该是深入了的吧。
后来发现在struts开发文档里,就有一个是Add Struts 2 Jar Files To Class Path,里面告诉所有的包含文件。
Find and copy to WEB-INF\lib these files (note X.X.X.X.jar refers to the version number):
- commons-fileupload-X.X.X.jar
- commons-io-X.X.X.jar
- commons-lang-X.X.jar
- commons-logging-X.X.X.jar
- commons-logging-api.X.X.jar
- freemarker-X.X.X.jar
- ognl-X.X.X.jar
- struts2-core-X.X.X.X.jar
- xwork-core-X.X.X.jar
- javassist-X.X.X.jar
有时候返回来看,发现有很多细节的地方可能没注意,导致后面出现错误。
在cnblogs里,貌似没有这个问题的描述,我来补充下吧,毕竟这个问题平时也不怎么会遇到。
补充:如果commons-fileupload-1.2.2.jar这个文件也没有的话,也是不显示的。