luinstein 发表于 2012-12-12 22:09:14

struts2.1.X关于配置redirect-action启动出错的解决方法


最近在学习Struts2,在配置struts-spring.xml的时候,我的配置文件struts-spring.xml如下:<action name="userlogin" class="UserLoginAction" method="userlogin">
      <result name="success" type="redirect-action">
                <param name="actionName">login</param>
                <param name="namespace">/</param>
      </result>
      <result name="error">/login.jsp</result>
</action>然后我启动TOMCAT,出现如下错误 Unable to load configuration. - action - file:/E:/apache-tomcat-5.5.25/webapps/wftang/WEB-INF/classes/struts-spring.xml:46:23
      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:221)
      at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:302)
      at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:78)
      at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3635)
      at org.apache.catalina.core.StandardContext.start(StandardContext.java:4222)
      at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
      at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
      at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
      at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
      at org.apache.catalina.core.StandardService.start(StandardService.java:448)
      at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
      at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
      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:295)
      at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)
Caused by: Error building results for action userlogin in namespace / - action - file:/E:/apache-tomcat-5.5.25/webapps/wftang/WEB-INF/classes/struts-spring.xml:46:23
      at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addAction(XmlConfigurationProvider.java:366)
      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)
      ... 21 more
Caused by: There is no result type defined for type 'redirect-action' mapped with name 'success'.Did you mean 'redirectAction'? - result - file:/E:/apache-tomcat-5.5.25/webapps/wftang/WEB-INF/classes/struts-spring.xml:50:53
      at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.buildResults(XmlConfigurationProvider.java:613)
      at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addAction(XmlConfigurationProvider.java:364)
      ... 26 more在网上搜索了一通,发现原来我前面的那个配置是支持struts2.0.X的配置,而我的struts的JAR的版本为struts2.1.6,在struts2.1.X中针对redirect-action的配置全面变了.配置如下:<action name="userlogin" class="UserLoginAction" method="userlogin">
      <result name="success" type="redirectAction">
                <param name="actionName">login</param>
                <param name="namespace">/</param>
      </result>
      <result name="error">/login.jsp</result>
</action>最后发现奇迹出现了,成功了!

from:http://go.cxweb.com.cn/ckyqy

页: [1]
查看完整版本: struts2.1.X关于配置redirect-action启动出错的解决方法