用MyEclipse struts2部署启动tomcat,居然报错,英文是“The action name cannot be the same as the action suffix”。后来把action比如LoginAction改成Login就不报了,为什么会这样?
- Dispatcher initialization failed
- java.lang.IllegalStateException: The action name cannot be the same as the action suffix [Action]
- at org.apache.struts2.convention.SEOActionNameBuilder.build(SEOActionNameBuilder.java:64)
- at org.apache.struts2.convention.PackageBasedActionConfigBuilder.determineActionNamespace(PackageBasedActionConfigBuilder.java:695)
- at org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildConfiguration(PackageBasedActionConfigBuilder.java:533)
- at org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildActionConfigs(PackageBasedActionConfigBuilder.java:318)
- at org.apache.struts2.convention.ClasspathPackageProvider.loadPackages(ClasspathPackageProvider.java:53)
- at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:204)
- at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:55)
- at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:374)
- at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:418)
- 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:275)
- 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.startup.HostConfig.checkResources(HostConfig.java:1105)
- at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1203)
- at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:293)
- at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
- at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1337)
- at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1601)
- at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1610)
- at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1590)
- at java.lang.Thread.run(Thread.java:619)
- 2009-11-29 11:16:16 org.apache.catalina.core.StandardContext filterStart
- 严重: Exception starting filter struts2
- The action name cannot be the same as the action suffix [Action] - Class: org.apache.struts2.convention.SEOActionNameBuilder
- File: SEOActionNameBuilder.java
- Method: build
- Line: 64 - org/apache/struts2/convention/SEOActionNameBuilder.java:64:-1
- 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:275)
- 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.startup.HostConfig.checkResources(HostConfig.java:1105)
- at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1203)
- at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:293)
- at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
- at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1337)
- at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1601)
- at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1610)
- at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1590)
- at java.lang.Thread.run(Thread.java:619)
- Caused by: java.lang.IllegalStateException: The action name cannot be the same as the action suffix [Action]
- at org.apache.struts2.convention.SEOActionNameBuilder.build(SEOActionNameBuilder.java:64)
- at org.apache.struts2.convention.PackageBasedActionConfigBuilder.determineActionNamespace(PackageBasedActionConfigBuilder.java:695)
- at org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildConfiguration(PackageBasedActionConfigBuilder.java:533)
- at org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildActionConfigs(PackageBasedActionConfigBuilder.java:318)
- at org.apache.struts2.convention.ClasspathPackageProvider.loadPackages(ClasspathPackageProvider.java:53)
- at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:204)
- at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:55)
- at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:374)
- at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:418)
- ... 16 more
Dispatcher initialization failed
java.lang.IllegalStateException: The action name cannot be the same as the action suffix [Action]
at org.apache.struts2.convention.SEOActionNameBuilder.build(SEOActionNameBuilder.java:64)
at org.apache.struts2.convention.PackageBasedActionConfigBuilder.determineActionNamespace(PackageBasedActionConfigBuilder.java:695)
at org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildConfiguration(PackageBasedActionConfigBuilder.java:533)
at org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildActionConfigs(PackageBasedActionConfigBuilder.java:318)
at org.apache.struts2.convention.ClasspathPackageProvider.loadPackages(ClasspathPackageProvider.java:53)
at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:204)
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:55)
at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:374)
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:418)
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:275)
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.startup.HostConfig.checkResources(HostConfig.java:1105)
at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1203)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:293)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1337)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1601)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1610)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1590)
at java.lang.Thread.run(Thread.java:619)
2009-11-29 11:16:16 org.apache.catalina.core.StandardContext filterStart
严重: Exception starting filter struts2
The action name cannot be the same as the action suffix [Action] - Class: org.apache.struts2.convention.SEOActionNameBuilder
File: SEOActionNameBuilder.java
Method: build
Line: 64 - org/apache/struts2/convention/SEOActionNameBuilder.java:64:-1
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:275)
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.startup.HostConfig.checkResources(HostConfig.java:1105)
at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1203)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:293)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1337)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1601)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1610)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1590)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.IllegalStateException: The action name cannot be the same as the action suffix [Action]
at org.apache.struts2.convention.SEOActionNameBuilder.build(SEOActionNameBuilder.java:64)
at org.apache.struts2.convention.PackageBasedActionConfigBuilder.determineActionNamespace(PackageBasedActionConfigBuilder.java:695)
at org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildConfiguration(PackageBasedActionConfigBuilder.java:533)
at org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildActionConfigs(PackageBasedActionConfigBuilder.java:318)
at org.apache.struts2.convention.ClasspathPackageProvider.loadPackages(ClasspathPackageProvider.java:53)
at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:204)
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:55)
at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:374)
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:418)
... 16 more
问题补充:
比如我的类名是LoginAction 放在包com.test.Action目录下。
后来试了下如果把包名Action改成Actions同样不报错了。。