运行Tomcat6.0出现如下错误:
严重: Exception starting filter Struts2
java.lang.ClassNotFoundException: org.apache.Struts2.dispatcher.FilterDispatcher
我在baidu里搜了下,提供的解决方案有:
1、导入commons-fileupload.jar和commons-io.jar包 
2、将tomcat及jdk版本更新到struts2的需求,即5.5及1.5    
3、添加struts2开发所需完整jar包  
4、检查web.xml及struts.xml是否书写错误 
5、将struts2相关包手动添加到classpath中
我用的是MyEclipse7.0 JDK1.60
工程中引用的struts2相关包有:
commons-io-1.4.jar
dwr.jar
jsonplugin-0.34.jar
xwork-core-2.1.6.jar
commons-logging-1.0.4.jar
freeer-2.3.15.jar
struts2-core-2.1.8.1.jar
ognl-2.7.3.jar
commons-fileupload-1.2.1.jar
struts2-spring-plugin-2.1.8.1.jar
ant.jar
所以方案1234对我不适用
至于方案5,暂时没有尝试过,因为我觉得如果要将上述包统统添加到classpath中,那工作量可真不小。
请问大家有什么解决方案?

解决方案 »

  1.   

    我把整个控制台的信息贴出来
    2010-4-10 18:36:52 org.apache.catalina.core.AprLifecycleListener init
    信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: D:\java\java\bin;D:\Program Files\apache-tomcat-6.0.20\bin
    2010-4-10 18:36:52 org.apache.coyote.http11.Http11Protocol init
    信息: Initializing Coyote HTTP/1.1 on http-8080
    2010-4-10 18:36:52 org.apache.catalina.startup.Catalina load
    信息: Initialization processed in 558 ms
    2010-4-10 18:36:52 org.apache.catalina.core.StandardService start
    信息: Starting service Catalina
    2010-4-10 18:36:52 org.apache.catalina.core.StandardEngine start
    信息: Starting Servlet Engine: Apache Tomcat/6.0.20
    2010-4-10 18:36:52 org.apache.catalina.startup.HostConfig deployDescriptor
    警告: A docBase D:\Program Files\apache-tomcat-6.0.20\webapps\webdemo inside the host appBase has been specified, and will be ignored
    2010-4-10 18:36:53 org.apache.catalina.core.StandardContext filterStart
    严重: Exception starting filter Struts2
    java.lang.ClassNotFoundException: org.apache.Struts2.dispatcher.FilterDispatcher
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
    at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:249)
    at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:397)
    at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:108)
    at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3800)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4450)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:526)
    at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:630)
    at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:556)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:491)
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1206)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:314)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:722)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
    at org.apache.catalina.core.StandardService.start(StandardService.java:516)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:583)
    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:288)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
    2010-4-10 18:36:53 org.apache.catalina.core.StandardContext start
    严重: Error filterStart
    2010-4-10 18:36:53 org.apache.catalina.core.StandardContext start
    严重: Context [/webdemo] startup failed due to previous errors
    2010-4-10 18:36:54 org.apache.catalina.core.ApplicationContext log
    信息: ContextListener: contextInitialized()
    2010-4-10 18:36:54 org.apache.catalina.core.ApplicationContext log
    信息: SessionListener: contextInitialized()
    2010-4-10 18:36:54 org.apache.coyote.http11.Http11Protocol start
    信息: Starting Coyote HTTP/1.1 on http-8080
    2010-4-10 18:36:54 org.apache.jk.common.ChannelSocket init
    信息: JK: ajp13 listening on /0.0.0.0:8009
    2010-4-10 18:36:54 org.apache.jk.server.JkMain start
    信息: Jk running ID=0 time=0/31  config=null
    2010-4-10 18:36:54 org.apache.catalina.startup.Catalina start
    信息: Server startup in 2129 ms
      

  2.   

    org.apache.Struts2.dispatcher.FilterDispatcher
    org.apache.struts2.dispatcher.FilterDispatcher楼主,发现区别了吗???
      

  3.   

    我买的书本好多程序都不是少这个jar就是少那个jar的。现在出书人的水平也就那么回事了,所以买书还是买大师级别出的书,虽然贵点但是用起来舒服。
      

  4.   

    我也遇到了类似的错误,我struts2中的第一个s是小写,还是会抛出ClassNotFoundException。
    我在项目中添加了:
    commons-fileupload-1.2.1.jar
     commons-io-1.3.2.jar
     commons-logging-1.0.4.jar
     freeer-2.3.15.jar
     ognl-2.7.3.jar
     struts2-core-2.1.8.1.jar
     xwork-core-2.1.6.jar
    7个jar。用到Eclipse版本是:
    Version: Helios Service Release 1
    Build id: 20100917-0705
    那位大侠给支支招,谢谢了!
      

  5.   

    我也遇到了:
    严重: Exception starting filter struts2
    java.lang.ClassNotFoundException: org.apache.struts2.dispatcher.FilterDispatcher
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1358)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204)
    at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:249)
    at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:397)
    at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:108)
    at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3693)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4340)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
    at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:920)
    at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:883)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
    at org.apache.catalina.core.StandardService.start(StandardService.java:516)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:566)
    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:288)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
      

  6.   

    如图所示将jar包加到如下位置即可。
    我用的是Eclipse Java EE IDE for Web Developers.
      

  7.   

    java.lang.ClassNotFoundException: org.apache.Struts2.dispatcher.FilterDispatcher
    Struts2 改成struts2 包名怎么可能大写。。
      

  8.   

    web.xml这样配置看可以么?<?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">    <display-name>Struts Blank</display-name>    <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>    <welcome-file-list>
            <welcome-file>index.html</welcome-file>
        </welcome-file-list></web-app>
      

  9.   

    报名当然是小写。但是改回来貌似不起作用。 <filter>
    <filter-name>webwork</filter-name>
    <filter-class>
    org.apache.struts2.dispatcher.FilterDispatcher
    </filter-class>
    </filter>包不知道对没有,<%@taglib uri="/struts-tags" prefix="s"%> 这里有红色波浪线
      

  10.   

    导入commons-io-2.0.1.jar我也碰到同样问题 首先我的copy的filter-class的S也大写了,不过改小写后,报java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
      

  11.   

    我是stucts-2.3.4  
    需要导入这几个包
    commons-lang3-3.1.jar
    freeer-2.3.19.jar
    javassist-3.11.0.GA.jar
    ognl-3.0.5.jar
    struts2-core-2.3.4.jar
    xwork-core-2.3.4.jar
      

  12.   

    手动将Struts2的相关jar复制到/webContent/WEB-INF/lib目录下
      

  13.   

    我用google上了一个英文网站
    http://www.programcreek.com/2012/03/java-lang-classnotfoundexception-org-apache-struts2-dispatcher-filterdispatcher/
    找到了答案。
    struts2只能把jar粘贴到WEB_INF下面的lib目录才可以正常运行,通过eclipse创建的classpath运行不了。我也不知道什么原因。但是我这么做,不再报这个异常了,项目正常启动和访问。