今天刚下载了struts2.1.8,把大家说的基本包导入到lib下后,就开始出错了
我的web.xml配置如下<?xml version="1.0" encoding="GBK"?>
<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" >
<display-name>myweb</display-name>

 <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
        <init-param>
<param-name>config </param-name> 
            <param-value>/WEB-INF/struts-config.xml </param-value> 
         <param-name>actionPackages</param-name>
         <param-value>com.mycompany.myapp.actions</param-value>
        </init-param>
    </filter>    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>,基本包导入的是commons-io-1.3.2.jar;commons-logging-1.0.4.jar;commons-logging-api-1.1.jar;freeer-2.3.15.jar;ognl-2.7.3.jar;struts2-core-2.1.8.1.jar;xwork-core-2.1.6.jar错误提示是:
2010-3-8 14:19:07 org.apache.catalina.core.StandardContext filterStart
严重: Exception starting filter struts2
java.lang.NoClassDefFoundError: com/opensymphony/xwork2/ActionContext
at org.apache.struts2.dispatcher.ng.InitOperations.cleanup(InitOperations.java:109)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:60)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:223)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:304)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:77)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3634)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4217)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:759)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:904)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:867)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:474)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1122)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:310)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1021)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
at org.apache.catalina.core.StandardService.start(StandardService.java:450)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:709)
at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
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:294)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)
Caused by: java.lang.ClassNotFoundException: com.opensymphony.xwork2.ActionContext
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1355)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1201)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
... 29 more
2010-3-8 14:19:07 org.apache.catalina.core.StandardContext start
严重: Error filterStart
2010-3-8 14:19:07 org.apache.catalina.core.StandardContext start
严重: Context [/myweb] startup failed due to previous errors
2010-3-8 14:19:07 org.apache.coyote.http11.Http11BaseProtocol start我用的环境是tomcat5.5+jdk1.6 有这方面经验的请提示一下,折腾半天了

解决方案 »

  1.   

    把<filter-class>
    org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
    </filter-class>
    改成
    <filter-class>
    org.apache.struts2.dispatcher.FilterDispatcher 
    </filter-class>
      

  2.   

    我少commons-fileupload-1.2.1.jar这个包了 ,
    把项目放tomcat webapps下加载没有出错,运行成功,
    但是我在Eclipse的项目中没有忘记加载这个包,一直报这个错误
    我看我还是自己再找找原因吧
      

  3.   

    3楼这样说不对吧 2.1.8版本是最新的我看我下载的struts2的帮助文档里面用的是
    <filter-class> 
    org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter 
    </filter-class> 
    2.1.8版本以前的才用
    <filter-class> 
    org.apache.struts2.dispatcher.FilterDispatcher 
    </filter-class>
    我不知道我这样理解是不是对的?
      

  4.   

    我在Eclipse的项目中我的配置通过不了,是不是还缺少什么啊?有没有知道的啊?新手请教
    希望有人不吝赐教
      

  5.   

    看下你的classpath
    是不是都有那些导的包
      

  6.   

    我知道哪些错误提示是说我的freeer-2.3.15.jar这个包没有导,我除了知道在WEB-INF/lib下加载外,不知道怎么看classpath,是看Eclipse下的那个.classpath文件,环境变量classpath应该就不用配置了吧?  我从来没有配过
      

  7.   

    看Eclipse下的那个.classpath文件
    既然是少了freeer-2.3.15.jar这个包,导下包就可以了吧
      

  8.   

    他提示的少那个包 但我下面有啊 就是不能upload
    有关upload的这个包我也加载了
      

  9.   

    严重: Exception starting filter struts2
    Unable to load configuration. - bean - jar:file:/F:/EclipseExample/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/webapps/myweb/WEB-INF/lib/struts2-core-2.1.8.1.jar!/struts-default.xml:53:89
    at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:431)
    at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:69)
    at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:51)
    at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:223)
    at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:304)
    at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:77)
    at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3634)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4217)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:759)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524)
    at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:904)
    at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:867)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:474)
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1122)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:310)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1021)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
    at org.apache.catalina.core.StandardService.start(StandardService.java:450)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:709)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
    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:294)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)
    Caused by: Unable to load configuration. - bean - jar:file:/F:/EclipseExample/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/webapps/myweb/WEB-INF/lib/struts2-core-2.1.8.1.jar!/struts-default.xml:53:89
    at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:58)
    at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:374)
    at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:418)
    ... 29 more
    Caused by: Unable to load bean: type: class:org.apache.struts2.views.freeer.FreeerManager - bean - jar:file:/F:/EclipseExample/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/webapps/myweb/WEB-INF/lib/struts2-core-2.1.8.1.jar!/struts-default.xml:53:89
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.register(XmlConfigurationProvider.java:221)
    at org.apache.struts2.config.StrutsXmlConfigurationProvider.register(StrutsXmlConfigurationProvider.java:101)
    at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:169)
    at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:55)
    ... 31 more
    Caused by: java.lang.NoClassDefFoundError: freeer/template/SimpleHash
    at java.lang.Class.getDeclaredConstructors0(Native Method)
    at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
    at java.lang.Class.getDeclaredConstructors(Unknown Source)
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.register(XmlConfigurationProvider.java:211)
    ... 34 more
    Caused by: java.lang.ClassNotFoundException: freeer.template.SimpleHash
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1355)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1201)
    at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    ... 38 more
    2010-3-8 16:14:48 org.apache.catalina.core.StandardContext start
    严重: Error filterStart
    红色部分是<bean class="org.apache.struts2.views.freeer.FreeerManager" name="struts" />
    是不是说freeer没有加载成功?
      

  10.   

    贴出来看Eclipse下的那个.classpath文件 
      

  11.   

      <?xml version="1.0" encoding="UTF-8"?>
    <classpath>
    <classpathentry kind="src" path="src"/>
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
    <classpathentry kind="con" path="org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/Apache Tomcat v5.5"/>
    <classpathentry kind="output" path="build/classes"/>
    </classpath>
    我的classpath里面好像就没有加载struts的包 
      

  12.   

    我就是直接复制到lib下面啊 看好多资料都说这样就可以了
    我听你说的我就在里面写着好像语法错误
    <classpathentry exported="true" kind="lib" path="WEB-INF/lib/freeer-2.3.15.jar"/这样写不对吗?
      

  13.   

    我在tomcat里面也是直接复制到WEB-INF/lib就是了,在哪里就没有出错,不知道怎么在Eclipse中就不行?
      

  14.   

    直接复制到lib下面?
    刷新下项目就会自动导,别手动修改classpath
    刷新下项目后,删掉tomcat里的再重新部署看下
      

  15.   

    加载上了,不过是构建路劲上加载上的 classpath中也有加载了
    但是还是那个问题存在
    顺便问一下struts.xml这个文件我应该创建在哪个目录下?
    我看书上用的struts1是放在WEB-INF下,但是看帮助文档说是放在WEB-INF/classes/下,
    但是我创建的Eclipse项目中WEB-INF下没有classes这个文件夹。
      

  16.   

    放在src下编译后就会到WEB-INF/classes/下
      

  17.   

    我先说下我的环境搭建, 怕跟你想的不一样,出的问题也不一样
    我是Eclipse3.2.1+tomcat5.5+lomboz+jdk1.6+struts2.1.8
    创建项目用的web->Dynamic Web Project
    我就没有这个classes文件夹 就算放在src下也编译不到classes下
    我试了
      

  18.   

    应该是<filter-class>
    org.apache.struts2.dispatcher.FilterDispatcher
    </filter-class>
    把<init-param>的东西全部删除掉。项目自动会找struts.xml的。
    在struts.xml中要写下面的
    <package name="struts" extends="struts-default">
    这样它就扩展了缺省的struts-default.xml文件。
      

  19.   

    我是这样解决的,看了好多相关的问题,大家的错误都不一样,主要看看错误提示,大部分是因为缺少包引起的。修改之后切记刷新项目,然胡删掉tomcat中的再重新部署