严重: Exception starting filter struts2
java.lang.ClassNotFoundException: org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1666)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1511)
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:406)
at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:388)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:117)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:248)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:368)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:98)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4193)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4801)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:139)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:988)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:771)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:139)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:988)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:275)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:139)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:427)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:139)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:649)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:139)
at org.apache.catalina.startup.Catalina.start(Catalina.java:585)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:415)
我用的是strut2.3.3,导入的包有:
commons-fileupload-1.2.2.jar
commons-io-2.0.1.jar
commons-lang-2.5.jar
freeer-2.3.16.jar
ognl-3.0.1.jar
struts2-core-2.2.3.jar
xwork-core-2.2.3.jar
javassist-3.11.0.GA.jarstruts.xml放在src目录下,代码如下:<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd"><struts>
    <constant name="struts.devMode" value="true" />
    <package name="default"  namespace="/" extends="struts-default">
        <action name="hello" >
            <result>/index.jsp</result>
        </action>
    </package>
</struts>web.xml放在WEB-INF下,代码如下:<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list> <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>
而且我每次Eclipse保存这个XML文件的时候Eclipse就会卡住
请各位大大帮帮我啊…Google了三、四个小时都没有找到解决方案T_T

解决方案 »

  1.   

    只能用struts2-core-2.2.3.jar这个jar?
      

  2.   

    如果允许,你可以换个struts的jar试试。
      

  3.   

    根据错误信息应该是缺少过滤器所对应的JAR包
      

  4.   

    说是包木有找到,是JAR包的问题
      

  5.   

    我找过了,在core包里是有org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter这个类的…我之前建过一个工程,没有这个问题…可是昨天不知道为什么就有这个问题了,而且一直搞不定…
      

  6.   

    按理说用struts2-core-2.2.3.jar这个jar是没有问题的。
      

  7.   

    检查你项目的classes path。 
      

  8.   

    commons-digester-1.8.jar 是不是这个包?  
    要不你重新建个项目,搭好框架 部署后,把tomcat下边的包全拉这个项目里边 就不会报错了!
      

  9.   

    遇到了,搞不定,网上查了说是jar冲突,可是换jar版本还是不行  求解决
      

  10.   

    查看你的web.xml<filter-class></filter-class>中的包名是否写对了。
      

  11.   

    遇到同样的问题。这是怎麽回事啊。web.xml配置对了,5个经典的jar也引入进去了。但是还是不行。怎麽回事啊!
      

  12.   

    同样的问题,求解释,struts2出问题了?
      

  13.   

    我知道怎么解决了,我的已经解决了,分享一下!
    ,是这样做的,因该是你的web.xml 的
    <filter-class>路径</filter-class>配置的不正确.具体办法:找到你的(找你的对应版本,我的是2.0.14)
    找到
    struts-2.0.14-all\struts-2.0.14\apps下的struts2-blank-2.0.14.war问文件,解压,找到里面的\struts2-blank-2.0.14\WEB-INF\web.xml  把里面的<filter-class>********</filter-class>复制出来,粘贴到你的项目就可以了.
      

  14.   

    一开始我也没发现自己的路径不对,和\struts2-blank-2.0.14\WEB-INF\web.xml的一样,但是就是不正确,复制出来人家的,替换自己的,就对了.呵呵
      

  15.   

    [b]经过我不懈的测试,最后终于搞定问题了,我使用的是Struts 2.1.8.1,java.lang.ClassNotFoundException: org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
    类找不到的原因是Tomcat启动的问题,原因在于Tomcat安装路径包含空格,楼主重装一下Tomcat,安在C盘根路径下就OK了....为人类软件开发做贡献....[/
    b]
      

  16.   

    我今天在部署一个简单的web的项目的时候也遇到了同样的异常,开始以为是jar包路径的问题,后来检查了一下,不是路径的问题,也不是jar包版本的问题,在把需要的jar包部署到web项目中的时候,一定要把所有的jar包copy到lib目录下,然后在重新部署到项目中,具体步骤是 1 copy jar包至lib目录 2 右键点击lib buildpath   add jars    3 选中所需jar包部署到项目中   重新启动tomcat5.5 异常解除!!切忌不要把需要的jar包放到别的盘符下直接部署到项目中,这样会抛上述异常!!!
      

  17.   

    大家用的myeclipse吗?我用myeclipse自带的struts2,导入后也出现这问题
    org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter这个也找到了。
      

  18.   

    我跟你犯了同样的问题,是web.xml写错了,检查下
      

  19.   

    我的现在还没解决,到底怎么解决?那个jar包肯定是引入了,在java文件中用import导入可以看到没有编译错误,可运行项目,还是说找不到filter对应的类
    严重: Exception starting filter struts2
    java.lang.ClassNotFoundException: org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
      

  20.   

    我遇到的是tomcat已启动就报java.lang.ClassNotFoundException: org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter。
    原因是user libraries和lib下面的jar重复(我的是数据库驱动重复)
      

  21.   

    我也遇到这样的问题。
    我自己你定义了一个user library 加入struts2的必要jar。然后导入这个library到项目里面。
    但是运行的时候,貌似不会自己depoly到lib目录下。
    所以要在eclipse里面,在Depolyment Assembly 里面,把自定义的Library的Depoly Path加上。
      

  22.   

    同样这个问题,我的是myeclipse自己集成的,不存在web.xml文件写入出错!tomcat安装路径也不存在空格!可是同样报这个错,纠结!哪位大哥有另外解决方法!?
      

  23.   

    如果导的是MyEclipse自带的struts2包,还是出现这个问题。我的解决方法是,先把Tomcat中的此项目去掉,然后再添加一下,执行,就成功了。
      

  24.   

    我的问题和你的一样。本来我用的是struts2.3.15就会报错,和你的错误一样。然后我用struts2-core-2.2.3.jar这个jar就没有问题了。