报错原因是说struts2.0过滤器启动失败,原因是struts配置文件里有个ACTION配置的class识别不了,那个CLASS我已经通过注入方式注入到SPRING里面去,但TOMCAT启动的时候解析了SPRING配置文件,但无法启动FilterDispatcher过滤器。贴出报错信息,来自于TOMCAT的日志文件:    2009-09-10 03:59:32 StandardContext[/MoneyMoneyProject]Exception starting filter struts2
Unable to load configuration. - action - file:/F:/jakarta-tomcat-5.0.28/webapps/MoneyMoneyProject/WEB-INF/classes/struts.xml:12:56
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:58)
at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:360)
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:403)
at org.apache.struts2.dispatcher.FilterDispatcher.init(FilterDispatcher.java:190)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:225)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:308)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:79)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3698)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4349)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:823)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:807)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:595)
at org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.java:277)
at org.apache.catalina.core.StandardHost.install(StandardHost.java:832)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:701)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:432)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:983)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:349)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1091)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:789)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1083)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:478)
at org.apache.catalina.core.StandardService.start(StandardService.java:480)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:2313)
at org.apache.catalina.startup.Catalina.start(Catalina.java:556)
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:585)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:287)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:425)
Caused by: Action class [RegisterAction] not found - action - file:/F:/jakarta-tomcat-5.0.28/webapps/MoneyMoneyProject/WEB-INF/classes/struts.xml:12:56
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.verifyAction(XmlConfigurationProvider.java:405)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addAction(XmlConfigurationProvider.java:355)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:460)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadPackages(XmlConfigurationProvider.java:265)
at org.apache.struts2.config.StrutsXmlConfigurationProvider.loadPackages(StrutsXmlConfigurationProvider.java:111)
at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:189)
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:55)
... 31 more
    这是struts.xml里面的配置写法:<package name="struts" extends="struts-default">        
        <action name="register" class="RegisterAction">
         <result>/index.jsp</result>
        </action>
    </package>这个是SPRING配置文件里的ACTION配置 <bean id="userService" class="business.UserService">
<property name="userDao" ref="userDao">
</property>
</bean>

<bean id="RegisterAction" class="action.RegisterAction">
<property name="userService" ref="userService">
</property>
</bean>
RegisterAction继承了struts2.0里的ActionSupport这个类,SPRING在web.xml里配置监听器成功。开发环境是:jdk1.5,myeclipse6.0,tomcat5.0,spring2.0,struts2.0,hibernate3.1恳请求教一下大家,还有哪些地方我做得没有到位的,谢谢,这个问题,查了网上资料,无解。

解决方案 »

  1.   

    strurs那里应该是一个spring的代理类吧! 
      

  2.   

    把ACTION都改成DelegatingActionProxy类型的
    交给SPRING管理,要不SPRING找不servletContext类型的
      

  3.   

    问题解决了,导入一个STRUTS-SPRING-PLUGIN的JAR包就可以了,2楼的朋友,谢谢你的帮助,那种做法在STRUTS2里并不适合。
      

  4.   

    你的spring实例化了没有啊?
    或者看看是不是少了struts2-spring-plugin-2.1.6.jar这个jar包