严重: Exception starting filter struts2 java.lang.ClassNotFoundException: or

第一篇参考 

折腾了半天,终于知道了原因,在搭建struts2的环境时,一般的做法是把jar包拖到WEB-INF下的lib文件中,Tomcat启动时,会到这个目录下加载jar文件,但如果你使用的是User Libraries,那么就在lib下就没有相应的jar文件了,虽然程序编译是没有问题的,但很有可能Tomcat启动时会报这个错,

  原因很简单:eclipse发布项目的时候并未自动将引用的jar包copy到WEB-INF/目录下,导致编译器找不到所使用的class.

百度了半天,找到了三种解决方案,一一试过了,只有两种成功解决了问题

  第一种方法(成功):

    很简单,抛弃使用User Librariy,将所有jar文件放到lib文件目录下,问题解决.但这并不是我想要的.

  第二种方法(失败):

    配置Tomcat的时候,默认选择的是"debug"模式,即调试模式,需要设置成"run"也就是运行模式

步骤为:Windows->preferences->My eclispe->servers->找到你使用的Tomcat->Lauch.

严重: Exception starting filter struts2 java.lang.ClassNotFoundException: or_第1张图片

 

      第三种方法(成功):

    手动将User library中的jar包添加到项目发布时自动加载的目录下:

    选中项目,右键选择Properties->Myeclispe->Deployment Assembly->new:

  严重: Exception starting filter struts2 java.lang.ClassNotFoundException: or_第2张图片

严重: Exception starting filter struts2 java.lang.ClassNotFoundException: or_第3张图片

选中你之前建好的User library,点击finish:

严重: Exception starting filter struts2 java.lang.ClassNotFoundException: or_第4张图片

严重: Exception starting filter struts2 java.lang.ClassNotFoundException: or_第5张图片

重新部署项目,启动Tomcat,问题解决!~~~~~


第二篇参考

解决方法:

很明显的错误:java.lang.ClassNotFoundException: FilterDispatcher
找不到FilterDispatcher这个类(FilterDispatcher分发器,是Struts2框架的核心Dispatcher,没有它,也就谈不起Struts2框架)
首先:看看有没有导入Struts2相应的jar包,是否齐全。最少要导入五个基本包:
commons-logging-api-1.1.jar
freemarker-2.3.8.jar
ognl-2.6.11.jar
struts2-core-2.0.12.jar
xwork-2.0.6.jar

如果该包含的jar包都引入了,再看,配置文件web.xml是否配置正确,
struts2使用的是Filter充当Control? 需要配置web.xml如下:注意类名和包名不要写错

????? struts2
????? org.apache.struts2.dispatcher.FilterDispatcher


????? struts2
????? *.do
????


????? struts2
????? /struts/*

如果以上两步都没有问题,那估计就是环境问题了,在开发中,环境问题是麻烦的事,检查你用的部署服务器(Tomcat或weblogic等)、IDE的版本(eclipse或者myEclipse),以及Struts2的版本...
struts2项目中web.xml配置2.1与2.0的区别
具体的过滤器类变了,2.0配置是以上写法
2.1以后是这样配置

?? struts2
??
?????? org.apache.struts2.dispatcher.ng.filter.StrutsPrepareFilter
???



?? struts2
?? /*
?

另外,也与你导入jar包的位置有关,建议最好放入工程WEB-INF下的lib目录里,有时不能识别。


你可能感兴趣的:(bug)