【转】Eclipse配置Struts2问题:ClassNotFoundException: org...dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

我的解决方案

一开始,我是依照某本教材,配置了User Libraries(名为struts-2.2.3, 可供多个项目多次使用), 然后直接把struts-2.2.3引入过来(这个包不会真正的放在项目文件夹下):

可是一运行就出现如题所示的错误,程序无法启动,具体错误如下:

严重: Exception starting filter struts2
java.lang.ClassNotFoundException: org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:269)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:422)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:115)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4071)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4725)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
at org.apache.catalina.core.StandardService.start(StandardService.java:525)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
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:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)

在Google里baidu了一下,得不到有效的解决方案。根据错误提示,意思是找不到类org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter,可是我确实手动找到了这个类啊:

为了确保类的名称没有拼写错误,右击上图的StrutsPrepareAndExecuteFilter.class文件,选择"Copy Qualified Name"(复制精确名称), 粘贴到web.xml文件的相应位置,保存重运行,出现同样的错误,证明类的名称没有拼写错误。

最后我弃用了User Libraries, 手动将Struts2的相关jar复制到/webContent/WEB-INF/lib目录下:

重新运行程序,成功!

也就是说,Tomcat默认从WEB-INF/目录下加载资源,Eclipse在发布程序的时候,并没有把User Libraries的相关资源拷贝到WEB-INF/目录下(Eclipse会把src目录下的所有非*.java文件复制到WEB-INF/classes目录下),所以Tomcat说找不到所需要的类。

其他解决方案

本文的评论中:

1. whbaicxy同学给出了其他的解决方案:Eclipse下User Library的发布. 请各位同学尝试一下, 期待各位把解决的结果写在本文下面的评论中.

2. orangekent同学的解决方案:

我也遇到此情况,但解决办法非常简单。
原因是为什么tomcat没有把jar包拷贝到运行环境?因为我们在配置tomcat的时候选择了“调试模式”,即“debug”;需设置为“生产模式”,即“run”,之后重新部署即可。
模式设置位置:myeclipse--preferences--servers--tomcatxx--launch选择“run mode”。

注:

工具版本:

Tomcat: 6.0.32

Eclipse Java EE: 3.6.2

Struts2: 2.2.3

截图工具:QQ

图片编辑:mspaint

版权声明:本文为博主原创文章,未经博主允许不得转载。

from: http://blog.csdn.net/njnu_mjn/article/details/6684661

时间: 2024-11-03 22:14:31

【转】Eclipse配置Struts2问题:ClassNotFoundException: org...dispatcher.ng.filter.StrutsPrepareAndExecuteFilter的相关文章

IDEA13中配置struts错误:ClassNotFoundException: org...dispatcher.ng.filter.StrutsPrepareAndExecuteFilter +找不到java程序包 解决办法

问题一:ClassNotFoundException: org...dispatcher.ng.filter.StrutsPrepareAndExecuteFilter解决办法 1.确保所有struts2所需要的包都导进去了(红色标记的),如图: 2.将外部lib下的包都复制到WEB-INFO下: 当再次启动tomcat的时候就可以了.IDEA会把src目录下的所有非*.java文件复制到WEB-INF/classes目录下,所以Tomcat说找不到所需要的类. 相同问题也可参见如下:(具体见原

Eclipse配置Struts2问题:ClassNotFoundException: org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

使用ssh搭建web项目,但是环境配置好后,挂载到tomcat服务器上就出现此异常 根据错误提示,意思是找不到org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter,一开始以为在web.xml文件中配置错误,于是找到类名复制粘贴(右击copy qualified name),保存重新运行,依然出现同样的错误,说明路径拼写没有问题. 最后我思路是在创建web项目中,WEB-INF的lib文件夹下面build pat

SSH2框架ClassNotFoundException:org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter的问题

今天启动tomcat,竟然报错. 严重: Exception starting filter Struts2 ClassNotFoundException:org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter. 意思是缺少Struts2的jar包.不至于啊,以前启动的时候也没有遇到这种问题.于是检查了一下lib文件夹,jar包应有尽有.突然想到要不然清一下tomcat的缓存吧.于是清除了一下,再次启动tomca

org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter错误解决

一月 10, 2017 1:50:21 下午 org.apache.catalina.core.StandardContext filterStart 严重: Exception starting filter struts2 java.lang.ClassNotFoundException: org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter at org.apache.catalina.loader.We

org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

1.先建立一个项目2.在WebRoot中建立一个jsp,名为index.jsp,在里面写一句话 <body> hello struts2 <br> </body> 3.在后台写入代码 public class T { org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter f; } 4.在struts.xml中写入 <constant name="struts.devMo

java.lang.ClassNotFoundException: org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

报这个错是因为加的struts的jar包有问题... 另外,jar包应该放在WEB-INF下的lib文件夹里面,且不必Add to build path,该目录下的jar包会自动引入 使用struts应该加一下核心包: 处理好之后重启tomcat就正常运行了...

java.lang.ClassNotFoundException: org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFil

项目启动时报错:java.lang.ClassNotFoundException: org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter struts2的jar包版本号为2.1.8,所以类名是没有错误的,而jar包确实加入进去了.jar包加入的方式是通过user library. 问题解决的办法是:将jar包拷贝到WEB-INF下lib文件夹目录,重新启动tomcat问题解决. ================

Eclipse配置Struts2.x

问了我同学现在JavaWeb主流框架是哪些.他说基本框架是SSH,struts2+spring+hibernate,流行的是SSM,springmvc+spring+mybatis,原本计划学下Struts1框架呢,这样就不学了,先学下Struts2,首先就是eclipse配置Struts2. 一.下载Struts2 从http://struts.apache.org/download.cgi#struts25101下载struts2的包,这里我选的是min的下载的 二.导入Struts2 下载

Eclipse配置Struts2

一.必备Jar包 二.配置struts2.xml文件 可以从解压缩的struts包的apps目录下找到struts2-blank.war,解压缩该文件可以在WEB-INF目录下的classes找到struts.xml文件.